操作系统的可加载模块架构


操作系统中的可加载内核模块是一个包含代码的对象文件,用于扩展正在运行的内核(也称为基本内核)。可加载内核模块用于添加对文件系统、硬件、系统调用等的支持。

显示操作系统可加载模块的图像如下:

Loadable Modules

操作系统中可能需要可加载内核模块的不同类型的内核:

微内核

微内核是正确实现操作系统所需的最小软件。这包括内存、进程调度机制和基本的进程间通信。

微内核包含基本要求,例如内存、进程调度机制和基本的进程间通信。唯一以特权级别(即内核模式)执行的软件是微内核。操作系统的其他功能从内核模式中移除,并在用户模式下运行。这些功能可能是设备驱动程序、文件服务器、应用程序进程间通信等。

微内核确保代码易于管理,因为服务在用户空间中划分。这意味着在内核模式下运行的代码更少,从而提高了安全性和稳定性。

单体内核

在单体系统中,整个操作系统都在内核空间工作。这增加了内核和操作系统的规模。这与微内核系统不同,在微内核系统中,正确实现操作系统所需的最小软件保存在内核中。

单体内核使用函数调用提供各种服务,例如内存管理、文件管理、进程调度等。这使得操作系统的执行速度非常快,因为服务是在相同的地址空间下实现的。

可加载模块的优点

如果没有可加载模块,操作系统必须在基本内核中包含所有提供所有预期功能的系统。这将导致内存浪费,因为大多数这些系统不会经常使用。此外,用户每次需要新功能时都需要重建并重新启动基本内核。

可加载模块的缺点

碎片惩罚是内核中可加载模块的主要缺点。这意味着每次插入新的内核模块代码时,内核都会变得碎片化。由于更多的 TLB(转换旁路缓冲区)未命中,这会导致性能下降。

更新于:2020年6月22日

854 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告