跳转到内容

动态内核模块支持

本页使用了标题或全文手工转换
维基百科,自由的百科全书
(重定向自DKMS
动态内核模块支持
原作者Gary Lerhaupt
開發者Dell
首次发布2003
当前版本2.6.1(2018年4月25日,​6年前​(2018-04-25
源代码库 編輯維基數據鏈接
编程语言Bash (Unix shell)
操作系统Linux
许可协议GNU General Public License
网站linux.dell.com/dkms/

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

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

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

参考资料

外部链接