動態內核模塊支持
外觀
原作者 | Gary Lerhaupt |
---|---|
開發者 | Dell |
首次發布 | 2003 |
當前版本 | 2.6.1(2018年4月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原生支持RPM和DEB軟件包格式。
動態內核模塊支持旨在創建一個內核相關模塊源可駐留的框架,以便在升級內核時可以很容易地重建模塊。這將允許 Linux 供應商提供較低版本的驅動程序,而無需等待新內核版本發行,同時還可以省去嘗試重新編譯新內核模塊的客戶預期要完成的工作。Oikawa等人在1996年提出一種與LKM類似的動態核心模塊(DKMs)技術。與LKM一樣,DKMs以文件的形式存儲並能在系統運行過程中動態地加載和卸載。DKMs由一個用戶層的DKM服務器來管理,並非由內核來管理。當核心需要某模塊時,由DKM服務器負責把相應的DKM加載;當核心的內存資源緊缺時,由DKM服務器負責卸載一個沒有被使用的DKM。缺點是所有的DKM是存儲在本地系統上的,占用了大量寶貴的存儲空間。