首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核与微内核架构相比如何?

Linux内核与微内核架构相比如何?
EN

Unix & Linux用户
提问于 2011-01-25 00:26:23
回答 7查看 32.4K关注 0票数 42

我曾经读到,微内核体系结构的一个优点是,您可以停止/启动基本服务,如网络和文件系统,而无需重新启动整个系统。但是考虑到现在的Linux内核(总是这样吗?)提供使用模块实现相同效果的选项,微内核的(剩余)优势是什么?

EN

回答 7

Unix & Linux用户

回答已采纳

发布于 2011-01-25 22:35:37

微核要求在最内部、最受信任的模式下运行的代码比单片核少。这包括许多方面,例如:

  • Microkernels允许随意加载和卸载非基本功能(如未连接或未使用的硬件驱动程序)。在Linux上,这主要是通过模块实现的。
  • 微内核更健壮:如果一个非内核组件崩溃,它不会带走整个系统。错误的文件系统或设备驱动程序可以使Linux系统崩溃。除了代码实践和测试之外,Linux没有任何方法来缓解这些问题。
  • 微核有一个较小的可信计算库。因此,即使是恶意设备驱动程序或文件系统也无法控制整个系统(例如,对于最新的USB小工具来说,一个来源不明的驱动程序将无法读取硬盘)。
  • 前一点的结果是,普通用户可以加载他们自己的组件,这些组件将是单块内核中的内核组件。

Unix是通过X窗口提供的,它是用户代码(视频设备驱动程序的一部分除外)。许多现代unices允许普通用户通过熔断器加载文件系统驱动程序。一些Linux网络数据包过滤可以在userland中完成。然而,设备驱动程序、调度器、内存管理器和大多数网络协议仍然仅限于内核。

关于Linux和微内核的经典读物(如果过时的话)是Tanenbaum-Torvalds辩论。20年后,可以说Linux正在非常缓慢地向微内核结构发展(可加载模块很早就出现了,FUSE是最近出现的),但是还有很长的路要走。

另一个改变是虚拟化在桌面和高端嵌入式计算机上的相关性增加:出于某些目的,相关的区别不是内核和用户之间的区别,而是管理程序和来宾OSes之间的区别。

票数 40
EN

Unix & Linux用户

发布于 2011-01-25 02:56:45

微内核将系统处于内核模式的时间限制为绝对最小,而不是用户空间。

如果在内核模式下发生崩溃,整个内核就会崩溃,这意味着整个系统会崩溃。如果在用户模式下发生崩溃,那么这个过程就会下降。Linux在这方面是健壮的,但任何内核子系统都有可能有意或无意地重写任何其他内核子系统的内存。

微内核概念在用户空间中放置了许多传统的内核模式,比如网络和设备驱动程序。由于微内核并不是真正的负责,这也意味着它可以更简单和更可靠。想想IP协议,通过简单而愚蠢的方式,通过将复杂性推到边缘,并使核心精益和平均,真正地导致了健壮的网络。

票数 16
EN

Unix & Linux用户

发布于 2011-01-26 18:44:20

你应该看看问题的另一面:

极高性能计算或微内核为什么会吸引人

文件系统属于内核

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/6409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档