📑 Table of Contents

可載入核心模組(英語:Loadable kernel module,縮寫為 LKM),又譯為載入式核心模組可裝載模塊可加载内核模块,或直接称为内核模块,是一種目的檔,在其中包含了能在作業系統內核空間運行的程式碼。它們運行在核心基底(base kernel),通常是用來支援新的硬體,新的檔案系統,或是新增的系統呼叫[1]

Microsoft Windows類UNIX系統都支援這個功能,但在不同的作業系統中,它有不同的名稱,如FreeBSD 稱為核心載入模組(kernel loadable module,縮寫為KLD),Mac OS X 稱為核心擴充(kernel extension,縮寫為KEXT)。[2]也有人稱它為核心可載入模組(Kernel Loadable Modules,縮寫為KLM) ,或核心模組(Kernel Modules,KMOD)。

技術特點

编辑

可載入核心模組可以讓作業系統在需要新功能時動態載入隨機存取記憶體(RAM),減少開發及使用上的困難。若沒有此模組,作業系統需要在開機時將所有可能需要的功能一次加入內核之中,但其中許多功能從來不會被使用;這不但浪費RAM空間,而且每次在增加新功能時,使用者需要重新編譯整個內核,之後重新開機。

然而与微内核下的系统服务不同,内核模块并不是独立进程,也没有独立的地址空间,而是与内核的其他部分共享内核地址空间。这对内核模块的质量提出了很高的要求,因为如果它出现了bug,会有损害整个系统内核的危险。

參見

编辑

参考资料

编辑
  1. ^ Introduction to Linux Loadable Kernel Modules. The Linux Documentation Project. 
  2. ^ Implementing drivers, system extensions, and kexts. Apple Developer. 

📚 Artikel Terkait di Wikipedia

WireGuard

to Linux 5.6. 9 January 2020. (原始内容存档于9 January 2020).  Torvalds, Linus. index : kernel/git/torvalds/linux.git. Linux kernel source tree. Kernel.org

混合核心

outside of the NT kernel tree, but this is not a conceptual difference. The precise technique of loading a driver/module into the kernel doesn't really matter

动态内核模块支持

自由软件主题 动态内核模块支持 (Dynamic Kernel Module Support,DKMS)是用来生成Linux的内核模块的一个框架,其源代码一般不在Linux内核源代码树。 当新的内核安装时,DKMS支持的内核设备驱动程序 到时会自动重建。 DKMS可以用在两个方向:如果一个新的内核

CUDA

= cuModuleGetFunction(&function, module, kernel_name); if (err != CUDA_SUCCESS) { fprintf(stderr, "* Error getting kernel function %s\n", kernel_name);

直接渲染管理器

DRM Internals — The Linux Kernel documentation. dri.freedesktop.org. [2026-04-26].  Mine of Information - DRM and KMS kernel module implementations. moi

Android

HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以取得操作函数。 Android是執行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux裏支持的功能,Android大都沒有支援,包括Cairo、X11、Alsa

Drupal

(node),背後由大量「模組」 (module) 控制其顯示、修改、排列、分類等方式。這種設計令 Drupal 不只可以建立普通的博客網站,配合適當組件,控制內容顯示及處理權限的方式,馬上能變成論壇、Wiki、社區網絡。截至2013年10月,Drupal的社群已編寫了超過23,855個模块(module)。 Drupal

钩子编程

使用Netfilter钩子修改Linux内核的网络交通。 #include <linux/module.h> #include <linux/kernel.h> #include <linux/skbuff.h> #include <linux/ip.h> #include <linux/tcp.h> #include