动态内核模块支持
一个开源框架,用于构建和维护源代码不在主线内核中的Linux内核模块。
最近更新 2026年8月24日
AI 爬虫读取
2次请求
1家公司- Anthropic2
- 词条页
- 2
- 争议页
- 0
- JSON · MD
- 0
- 首次读取
- 2026年11月4日
- 最近读取
- 2026年11月4日
数据来自本站服务器日志
概览
动态内核模块支持,通常缩写为DKMS,是一个开源软件框架,用于管理在主线Linux内核源代码树之外开发或分发的Linux内核模块。其核心目的是在系统收到新内核时,保持外部维护的驱动程序和其他内核扩展可用。DKMS不是要求管理员找到匹配的预编译模块或在每次内核升级后手动重建软件,而是可以针对已安装内核的头文件和配置编译已注册的模块源代码,并安装生成的模块。 该项目由戴尔的Linux工程团队于2003年创建。它解决了Linux用户和硬件供应商反复出现的操作问题:每当内核的内部接口或构建环境发生变化时,内核模块通常需要重新构建。DKMS提供了一种标准化的工作流程,用于添加模块源代码、描述其构建方式、为一个或多个已安装的内核编译、安装或删除它,并在引入新内核时重新构建。 DKMS对于未包含在上游Linux内核中的驱动程序和扩展特别有用。示例包括一些专有图形驱动程序、虚拟化组件、存储驱动程序、无线驱动程序以及其他供应商或项目维护的模块。该框架还可以在已部署的系统上安装驱动程序,即使发行版不提供针对该内核版本的现成二进制包,只要所需的源代码和构建依赖项可用。 DKMS的一个显著特点是它与软件包和内核安装工作流程的集成。一旦模块注册,发行版工具可以在内核安装期间调用DKMS,以便为新内核构建模块。这有助于在内核更新时保持设备和服务的功能,尽管成功编译仍取决于模块源代码与新内核的兼容性以及合适的内核头文件和编译器工具的可用性。 DKMS支持Debian系列和RPM系列的打包工作流程,并包含在或可通过一系列Linux发行版获得,包括Ubuntu、Debian、Fedora、SUSE、Mageia和Arch。它是根据GNU通用公共许可证第2版或更高版本分发的自由软件。该项目最好被理解为Linux基础设施,而不是面向消费者的硬件品牌,被发行版、系统管理员、硬件供应商和开源项目使用。
沿革
动态内核模块支持源于戴尔Linux工程团队,于2003年创建。它的创建反映了Linux管理中的一个实际限制:在主内核源代码树之外维护的软件通常在内核更改时需要重新构建。这对于由供应商或专业项目提供而非纳入上游内核的硬件驱动程序和系统扩展尤为重要。 DKMS引入了一种可重复的机制,用于注册外部模块源代码并将其与构建指令关联。当安装新内核时,该框架可以针对新内核的头文件和构建环境调用这些指令,生成适合该内核的模块。这种模式减少了管理员手动编译的需要,并减少了对供应商为每个支持的内核和发行版组合发布单独预编译包的依赖。 该框架成为更广泛的Linux发行版生态系统的一部分。它支持Debian风格和RPM风格的打包环境,并已包含在或可通过Ubuntu、Debian、Fedora、SUSE、Mageia和Arch等发行版获得。其采用对于仍处于主线内核之外的模块尤其相关,包括某些图形、虚拟化、无线、存储和供应商特定的驱动程序。 DKMS并不消除兼容性限制。模块仍然必须针对目标内核成功编译,内核API、配置、编译器行为或模块源代码的变化可能需要模块开发人员进行维护。内核头文件和其他构建依赖项也必须存在。从这个意义上说,DKMS自动化了构建和部署过程,但并不保证每个外部模块都能与每个未来的内核保持兼容。 该项目作为自由软件根据GNU通用公共许可证第2版或更高版本发布。其持久的作用是作为使能基础设施:它将Linux软件包和内核更新工作流程与外部内核模块的基于源代码的重建连接起来。DKMS不是作为传统的商业产品线运作,而是作为Linux系统管理和硬件支持堆栈中广泛使用的工具。
- 2003
在戴尔创建项目
[1]戴尔的Linux工程团队创建了动态内核模块支持,以在内核更改时自动重建外部维护的Linux内核模块。
产品与定位
Linux系统的技术基础设施,专注于自动化外部内核模块在内核升级时的编译、安装和维护。
Linux系统软件 · 2003
动态内核模块支持
DKMS是一个框架,用于注册、编译、安装、删除和重建源代码在主线内核树之外维护的Linux内核模块。它可以为现有内核构建模块,并可在安装新内核时自动调用。该框架支持Debian和RPM打包环境,通常用于外部硬件驱动程序和其他内核扩展。其有效性取决于目标内核可用的兼容源代码、内核头文件和构建工具。
来源2 个来源
引用本词条: 请引用规范词条页。 /brand-wiki/dynamic-kernel-module-support · 编辑方针 · 词条如何编纂