Linux 就是通常所说的单内核(monolithic kernel),即操作系统的大部分功能都被称为内核,并在特权模式下运行。
它与微型内核不同,后者只把基本的功能(进程间通信 [IPC]、调度、基本的输入/输出 [I/O] 和内存管理)当作内核运行,而把其他功能(驱动程序、网络堆栈和文件系统)排除在特权空间之外。
因此,您可能认为 Linux 是一个完全静态的内核,但事实恰恰相反。
通过 Linux 内核模块(LKM)可以在运行时动态地更改 Linux。
可动态更改是指可以将新的功能加载到内核、从内核去除某个功能,甚至添加使用其他 LKM 的新 LKM。
LKM的优点是可以最小化内核的内存占用,只加载需要的元素(这是嵌入式系统的重要特性)。
Linux不是可以进行动态更改的惟一(也不是第一个)单内核。Berkeley Software Distribution(BSD)的变体、Sun Solaris、更老的内核(比如 OpenVMS),以及其他流行的操作系统(比如 Microsoft® Windows® 和 Apple Mac OS X)都支持可加载模块。
【文章福利】小编在群文件上传了一些个人觉得比较好得学习书籍、视频资料,有需要的可以进群【977878001】领取!!!额外赠送一份价值699的内核资料包(含视频教程、电子书、实战项目及代码)
内核资料直通车:Linux内核源码技术学习路线+视频教程代码资料
学习直通车:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈
剖析内核模块
LKM与直接编译到内核或典型程序的元素有根本区别。