>>А почему винде это удалось - разделить ядро и драйвера - и
>>ничего, живет себе, и проблем с драйверами особо не наблюдается?
>
>Потому что Вы их не видите. Вы же не разрабатываете драйверы
>под винду, правильно?
>Разрабатывал два года назад драйвер LPT-порта ( стандартный не устраивал тем, что не разрешал произвола с управляющими выводами ). Драйвер работал в связке с parclass.sys, заменяя parport.sys. Конечно, сложность драйвера - ничто по сравнению со сложностью, скажем, драйвера современной видеокарты. И тем не менее, особой кривизны API ядра я как-то не заметил. И драйвер писать было достаточно легко, если не заморачиваться расчетом на работу в до-Win2k времена.
>Кто разрабатывает -- вздыхают о том, что объезжать кривые API приходится им,
>поскольку MS не собирается их исправлять, поскольку если исправить -- сломается
>то, что закладывалось на старые особенности.
>
А нельзя ли поподробнее об этом? Если не брать в расчет Win9x & NT4?
>>При этом драйвера подходят не только в разных сервис-паках, но и в
>>разных версиях ОС ( собственноручно ставил драйвера для win-модема
>>от Win2000 в WinXP ) ?
>
>Боюсь, это ближе к "повезло" (или вендор не поленился и обеспечил)...
В некотором роде, да, повезло. Но везение не сказать чтобы было полной случайностью...
>
>>Почему в солярке не только драйвера, но и планировщики можно подгружать свои
>>без необходимости править что-то в ядре?
>
>Ну про modular [task] scheduler core тоже патчи были: http://lwn.net/Articles/230501/ -- но
>насколько помню, сошлись на том, что оверхед слишком большой получается.
>
Именно!!! Мне так кажется, что это и есть основная причина отсутствия стабильного API ядра - потому что уменьшается ( хотя при вменяемом дизайне и незначительно ) производительность, и уменьшаются возможности для дальнейшей оптимизации. В этом сила и слабость Linux-ядра. Это просто выбор, который сделало community. Только этот выбор имеет и достоинства, и недостатки. Так же как и выбор вынести драйвера из ветки с обретением стабильного API.