Цитата: kerosene от 11.10.2022 04:43:05Когда ты начинаешь вникать "внутрь", то быстро понимаешь каким ископаемым является Линукс со своей устаревшей идеологией что "все есть файл". А так же быстро понимаешь, что линуксовый API это устаревший набор функций стандарта POSIX разработанный при царе Горохе во времена UNIX-подобных систем, да еще и несовместимый у разных версий линуксов.
P.S. Как-то на сайте IBM я смотрел как одни и те же вещи реализуются при помощи API в Винде и на Линуксе. Так вот то, что в примере на C++ в Винде требовало буквально 10 строчек кода, в Линуксе требовало целой простыни в 100. Это касается например работы с потоками, сокетами, файлами и синхронизацией доступа.
Просто смешно. Вы либо врете, либо "смотрите в книгу и видите там фигу". И про строчки и про IBM.
Вот вам пример – чтобы создать процесс, в никсах достаточно вызвать функцию fork(), причем никаких параметров этот вызов не принимает. Чтобы создать процесс в шиндовсах, нужно вызвать функцию и передать ей кучу параметров, котороые нужно еще и подготовить. Что касается сокетов, то сегодня библиотеке сокетов, что раньше назывались berkeley sockets, вообще нет альтернативы. Именно потому, что работа с ними намного проще, нежели с какими-либо другими при всей их гибкости. А уж винсокеты – это вообще непонятно что и зачем.
Что касается строчек кода, то те десять, о которых вы толкуете, это обертки вокруг достаточно громоздкого кода. Или то, что вы увидели у микрософт, написано не на си (майки его не поддерживают с 1998 года), а на чем-то более высокоуровневом. Я бы посоветовал вам слазить в msdn и сравнить системный интерфейс виндовс с системным интерфейсом линукса или bsd на уровне инструкции процессора syscall. Более, чем полторы тысячи вызовов в ядро винды против четырех сот линуксовых. А если подсчитать количеcтво передаваемых в ядро параметров, т.е. просто проссуммировать их по всем вызовам, то будет не в четыре, а в шесть раз больше. Так о каких строчках кода вообще может идти речь? Майки всегда оборачивают небольшое подмножество системных вызовов в виде наиболее используемых вариантов, чтобы понизить уровень вхождения для нубов. И в этом нет ничего хорошего – программисту легче, зато пользователю хреново. Ну и томозит все это нещадно. Те, кто пишет многопоточку под никсами, давно уже имеют свои обертки, оптимизированные под любые задачи. Мало того, они и под винды пишут это используя те самые сокеты и pthreads. Другое дело нубы – эти все хотят стать программистами за 21 день с нуля.
Относительно потоков и синхронизации – библиотека pthreads кроет тот кал, что на эту тему в шиндовсах, как бык овцу. По производительности, по объему кода, по возможностям планирования потоков, да по всем параметрам вообще, в том числе и по удобству использования. Мало того, это все работает и под виндами. Что касается сокетов, то тут вообще у винды нет альтернативы, если она желает в интернет. Нет у винды своих рабочих сокетов и никогда не было. Сети виндовс – ее удел.