動態內核模塊支持

動態內核模塊支持 （ 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是存儲在本地系統上的 ， 佔用了大量寶貴的存儲空間 。