可加载内核模块

可加载内核模块(英语:Loadable kernel module,缩写为 LKM),又译为加载式核心模块可装载模块可加载内核模块,或直接称为内核模块,是一种目标文件,在其中包含了能在操作系统内核空间运行的代码。它们运行在核心基底(base kernel),通常是用来支持新的硬件,新的文件系统,或是新增的系统调用

Microsoft Windows类UNIX系统都支持这个功能,但在不同的操作系统中,它有不同的名称,如FreeBSD 称为核心加载模块(kernel loadable module,缩写为KLD),Mac OS X 称为核心扩展(kernel extension,缩写为KEXT)。也有人称它为核心可加载模块(Kernel Loadable Modules,缩写为KLM) ,或核心模块(Kernel Modules,KMOD)。

技术特点

可加载内核模块可以让操作系统在需要新功能时动态加载随机存储器(RAM),减少开发及使用上的困难。若没有此模块,操作系统需要在开机时将所有可能需要的功能一次加入内核之中,但其中许多功能从来不会被使用;这不但浪费RAM空间,而且每次在增加新功能时,用户需要重新编译整个内核,之后重启。

然而与微内核下的系统服务不同,内核模块并不是独立进程,也没有独立的地址空间,而是与内核的其他部分共享内核地址空间。这对内核模块的质量提出了很高的要求,因为如果它出现了bug,会有损害整个系统内核的危险。

参见