動態內核模組支援
原作者 | 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是儲存在本地系統上的,佔用了大量寶貴的儲存空間。