单内核和微内核在结构和安全性方面有什么区别?我的朋友告诉我,Linux 系统采用单内核,因此不容易被黑客入侵,但我认为他的说法并不正确。
请有人启发我。
答案1
基本区别在于微内核 (MK) 非常小,仅提供极少的服务。通常被视为操作系统服务的大部分服务由在内核之外执行的独立进程提供,并且处于较低特权模式。这些进程需要通过某种 IPC 进行通信,而不仅仅是读取/写入它们想要访问的任何数据结构。
由于内核较小,MK 往往比较容易移植,移植工作量较低。
由于所提供的许多服务可能运行在用户空间而非内核空间,因此它们无法轻易破坏其他进程。这是安全性的一个优点。
例如,假设网络堆栈的一部分位于用户空间,并且受到攻击,它可能无法破坏其他进程/任务。而如果单片内核中的网络堆栈的同一部分可能在内核空间中运行,如果受到攻击,它将能够破坏其他进程,因为它具有特权。
答案2
为了说明 Jason 的演讲,这里有一个图表来说明微混合内核和单片内核之间的区别:
图像清晰维基百科上的源文件。