我曾经读到,微内核体系结构的一个优点是,您可以停止/启动基本服务,如网络和文件系统,而无需重新启动整个系统。但是考虑到现在的Linux内核(总是这样吗?)提供使用模块实现相同效果的选项,微内核的(剩余)优势是什么?
发布于 2011-01-25 22:35:37
微核要求在最内部、最受信任的模式下运行的代码比单片核少。这包括许多方面,例如:
Unix是通过X窗口提供的,它是用户代码(视频设备驱动程序的一部分除外)。许多现代unices允许普通用户通过熔断器加载文件系统驱动程序。一些Linux网络数据包过滤可以在userland中完成。然而,设备驱动程序、调度器、内存管理器和大多数网络协议仍然仅限于内核。
关于Linux和微内核的经典读物(如果过时的话)是Tanenbaum-Torvalds辩论。20年后,可以说Linux正在非常缓慢地向微内核结构发展(可加载模块很早就出现了,FUSE是最近出现的),但是还有很长的路要走。
另一个改变是虚拟化在桌面和高端嵌入式计算机上的相关性增加:出于某些目的,相关的区别不是内核和用户之间的区别,而是管理程序和来宾OSes之间的区别。
发布于 2011-01-25 02:56:45
微内核将系统处于内核模式的时间限制为绝对最小,而不是用户空间。
如果在内核模式下发生崩溃,整个内核就会崩溃,这意味着整个系统会崩溃。如果在用户模式下发生崩溃,那么这个过程就会下降。Linux在这方面是健壮的,但任何内核子系统都有可能有意或无意地重写任何其他内核子系统的内存。
微内核概念在用户空间中放置了许多传统的内核模式,比如网络和设备驱动程序。由于微内核并不是真正的负责,这也意味着它可以更简单和更可靠。想想IP协议,通过简单而愚蠢的方式,通过将复杂性推到边缘,并使核心精益和平均,真正地导致了健壮的网络。
发布于 2011-01-26 18:44:20
https://unix.stackexchange.com/questions/6409
复制相似问题