Каковы различия между монолитным ядром и микроядром в отношении структуры и безопасности. Мой друг сказал мне, что системы Linux имеют монолитное ядро и поэтому их не так просто взломать, но я не думаю, что он был на самом деле прав.
Кто-нибудь, пожалуйста, просветите меня.
Ответы:
Основное отличие состоит в том, что микроядро (MK) очень мало и предоставляет лишь минимальный набор сервисов. Большинство из того, что обычно считается службами операционной системы, предоставляются отдельными процессами, которые выполняются вне ядра и в менее привилегированном режиме. Эти процессы должны соединяться через IPC, а не просто читать / записывать в любую структуру данных, к которой они хотят получить доступ.
MK, как правило, довольно легко портировать, так как ядро маленькое, усилия по переносу невелики.
Поскольку многие предоставляемые сервисы потенциально работают в пространстве пользователя, а не в пространстве ядра, они не могут легко уничтожить другие процессы. Это плюс безопасности.
Например, часть сетевого стека находилась в пользовательском пространстве и была скомпрометирована, что не могло нарушить другие процессы / задачи. Принимая во внимание, что если эта же часть сетевого стека в монолитном ядре может работать в пространстве ядра, то в случае компрометации она сможет уничтожить другие процессы, поскольку она будет привилегированной.
источник
Чтобы проиллюстрировать выступление Джейсона, вот иллюстрация, чтобы увидеть разницу между микрогибридным и монолитным ядром:
Разборчивый исходный файл изображения в Википедии .
источник