А то мне тут хвастаются виндузятники, что у них, мол, лочки ядра нету, почти все ядерные функции реентерабельные, а у нас, мол, фу!!! BKL ещё не выпилили...
>> А то мне тут хвастаются виндузятники, что у них, мол, лочки ядра нету, почти все ядерные функции реентерабельные,
Скажи им пусть дадут пруфлинк.
Я как-то писал мультиплексор для простого сетевого транспорта (на select'ах) под винду. Так вот если из нескольких потоков активно дергать select/recv/send, то Виндовс 2003 адвансед сервер на 4х процессорном ксеоне дохнет так, что пришлось звонить в техподдержку, чтоб нажали ресет.
> если из нескольких потоков активно дергать select/recv/send
Ну дык, WinSock, кажись, цельнотянутый из BSD с последующим допиливанием под виндоуз. На более новых ихних сетевых API не пробовал, как оно получаться будет?
>А как нынче дела с BigKernelLock-ом в этом самом kernel-е?
Хреново.
Разработчики ядра Linux упустили все шансы сделать ядро свободным от BKL в обозримом будущем, так как новый код писался с завуаированным/непрозрачным/ взаимодействием с ядром через BKL. Поздно спохватились, в общем.
В FreeBSD эту проблему поняли ещё давно, и сейчас код ядра 7.2-RELEASE в сетевой подсистеме полностью избавлен от GIANT_LOCK.
>Виндовс 2003 адвансед сервер на 4х процессорном ксеоне дохнет
Судя по обзору Windows 2008 Server в журнале "Системный администратор", в новой версии этой операционке старый стек протоколов IPv4 и IPv6 был полностью переработан и заменён интегрированным стеком IPv4/IPv6 — такой же код (архитектурно) используется в FreeBSD 7.x.