Монолитное против Микро ядра

8

Каковы различия между монолитным ядром и микроядром в отношении структуры и безопасности. Мой друг сказал мне, что системы Linux имеют монолитное ядро ​​и поэтому их не так просто взломать, но я не думаю, что он был на самом деле прав.

Кто-нибудь, пожалуйста, просветите меня.

Прасун Саурав
источник
Для ознакомления с историческим прошлым вы можете прочитать Дебаты о Таненбауме-Торвальдсе с 1992 года.
Приостановлено до дальнейшего уведомления.

Ответы:

6

Основное отличие состоит в том, что микроядро (MK) очень мало и предоставляет лишь минимальный набор сервисов. Большинство из того, что обычно считается службами операционной системы, предоставляются отдельными процессами, которые выполняются вне ядра и в менее привилегированном режиме. Эти процессы должны соединяться через IPC, а не просто читать / записывать в любую структуру данных, к которой они хотят получить доступ.

MK, как правило, довольно легко портировать, так как ядро ​​маленькое, усилия по переносу невелики.

Поскольку многие предоставляемые сервисы потенциально работают в пространстве пользователя, а не в пространстве ядра, они не могут легко уничтожить другие процессы. Это плюс безопасности.

Например, часть сетевого стека находилась в пользовательском пространстве и была скомпрометирована, что не могло нарушить другие процессы / задачи. Принимая во внимание, что если эта же часть сетевого стека в монолитном ядре может работать в пространстве ядра, то в случае компрометации она сможет уничтожить другие процессы, поскольку она будет привилегированной.

Джейсон Тан
источник
1

Чтобы проиллюстрировать выступление Джейсона, вот иллюстрация, чтобы увидеть разницу между микрогибридным и монолитным ядром:

ядро

Разборчивый исходный файл изображения в Википедии .

Studer
источник