Назад | Перейти на главную страницу

Монолитное и микро-ядро

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

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

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

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

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

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

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

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