可加载内核模块 - Wikiwand
For faster navigation, this Iframe is preloading the Wikiwand page for 可加载内核模块.

可加载内核模块

维基百科,自由的百科全书

此条目没有列出任何参考或来源。 (2013年11月28日)维基百科所有的内容都应该可供查证。请协助补充可靠来源以改善这篇条目。无法查证的内容可能会因为异议提出而移除。

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

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

技术特点

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

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

参见

{{bottomLinkPreText}} {{bottomLinkText}}
可加载内核模块
Listen to this article