我在谷歌上搜索了几次,但似乎找不到答案,至少在前两页搜索中没有找到。我想知道 Ubuntu 内核是模块化的还是单片的?我看到一篇文章说,当今大多数发行版都是高度模块化的,但没有具体提到具体是哪些。
只是一些感兴趣并且想知道的事情!
答案1
Linux 内核既是单片内核,又是模块化内核:) 它们并不互相排斥。
单片内核指所有部分共享公共地址空间的内核:
这减少了上下文切换和消息传递的数量,使该概念比微内核更快。缺点是,在内核空间中运行的代码量使内核更容易出现致命错误。
“单片内核”的反义词是“微内核“,其中内核只负责协调在用户空间运行的服务,完成所有实际工作。
“模块化内核“ 意思是
系统核心的某些部分将位于称为模块的独立文件中,这些文件可在运行时添加到系统中。根据这些模块的内容,目标可能会有所不同,例如:
- 仅在实际找到设备时才加载驱动程序
- 仅在实际请求时加载文件系统
- 仅在需要评估时才加载特定(调度/安全/其他)策略的代码
这些模块仍然在内核空间运行,而不是在用户空间运行,因此内核架构仍然是单片的。
答案2
Ubuntu 是一个 GNU/linux 发行版。这意味着它使用 linux 内核。
Linux 内核被认为是单内核。
它有模块,但它们都共享相同的内存(即:可以在“其他”内存中写入),而在模块化内核中,不同部分(例如驱动程序)使用单独的内存运行(并且在某些情况下,甚至可以在不损害整个内核的情况下发生故障)