动态内核模块支持

动态内核模块支持 （Dynamic Kernel Module Support，DKMS）是用来生成Linux的内核模块的一个框架，其源代码一般不在Linux内核源代码树。 当新的内核安装时，DKMS支持的内核设备驱动程序 到时会自动重建。 DKMS可以用在两个方向：如果一个新的内核版本安装，自动编译所有的模块，或安装新的模块（驱动程序）在现有的系统版本上，而不需要任何的手动编译或预编译软件包需要。例如，这使得新的显卡可以使用在旧的Linux系统上。

DKMS是由戴尔的Linux工程团队在2003年写的。它已经被许多Linux发行版所包含，如Ubuntu 8.10(包括后来的版本)和Fedora。 它是以GNU通用公共许可证（GPL）v2或以后的条款发布下的自由软件。DKMS原生支持RPM和DEB软件包格式。

动态内核模块支持旨在创建一个内核相关模块源可驻留的框架，以便在升级内核时可以很容易地重建模块。这将允许 Linux 供应商提供较低版本的驱动程序，而无需等待新内核版本发行，同时还可以省去尝试重新编译新内核模块的客户预期要完成的工作。Oikawa等人在1996年提出一种与LKM类似的动态核心模块（DKMs）技术。与LKM一样，DKMs以文件的形式存储并能在系统运行过程中动态地加载和卸载。DKMs由一个用户层的DKM服务器来管理，并非由内核来管理。当核心需要某模块时，由DKM服务器负责把相应的DKM加载；当核心的内存资源紧缺时，由DKM服务器负责卸载一个没有被使用的DKM。缺点是所有的DKM是存储在本地系统上的，占用了大量宝贵的存储空间。

参考资料

外部链接
Dell DKMS site 
LinuxJournal - Exploring DKMS 
Building a kernel module using DKMS 

戴爾
Linux内核