>Микроядро определяется не размером кода, исполняющегося в нулевом кольце, а интерфейсами между компонентами.Ну почему же... Микроядро тем и специфично, что лишь МАЛАЯ его ЧАСТЬ исполняется в привелигированном режиме процессора, самое главное: прерывания, взаимодействие с аппаратурой для нужд ОС и еще несколько базовых функций. Все остальное выносится за пределы ring0 и связывается с ядром и друг с другом при помощи передачи сообщений.
>Если большинство модулей — отдельные (пусть и не обладающие изолированной памятью) процессы, общающиеся, например, через сообщения (не знаю, как точно это в NT, врать не буду), то это — микроядерная система. А изоляция процессов «по памяти» вообще не причём, это отдельная сущность, наличие или отсутствие которой не делает систему ни микроядерной ни монолитом.
Ну тут Вы многое напутали:) микроядерность и модульность- это 2 совершенно разные характеристики ОС. Повторюсь: микроядерная ОС, это ОС, у которой лишь _МАЛАЯ_ часть ядра, ответственная лишь за самые базовые функции, работает в привелигировнном режиме процессора. Все остальное реализуется в виде сервисов в user-mode, обменивающихся сообщениями. Модульная ОС не обязательно является микроядерной: так и в Linux, и в Solaris существует возможность динамического подключение модулей режима ядра, но они работают с теми же привелигями, что и само ядро, т.е. эти ОС не являются микроядерными. Ну а передача сообщений (IPC) существовала в Юниксах вообще с незапамятных времен, когда о микроядерности вообще даже не заикались:) И наконец, "изоляция процессов по памяти", так это вообще базовое фундаментальное требование, предъявляемое к любой современной операционной системе. Даже в Вин95 оно было, правда в зачаточном состоянии и элементарно обходилось, но по крайней мере защищало процессы от неумышленного воздействия друг на друга. Чего не было, например, в ДОСе