4.2 linux核心模組程式結構
乙個linux核心模組主要由如下幾個部分組成。
(1)模組載入函式
當通過insmod或modprobe命令載入核心模組時,模組的載入函式會自動被核心執行,完成本模組的相關初始化工作。
(2)模組解除安裝函式
當通過rmmod命令解除安裝某模組時,模組的解除安裝函式會自動被核心執行,完成與模組載入函式相反的功能。
(3)模組許可證宣告
許可證(license)宣告描述核心模組的許可許可權,如果不宣告license,模組被載入時,將收到核心被汙染(kernel tainted)的警告。
在linux核心模組領域,可接受的license包括「gpl」、「gpl v2」、「gpl and additional rights」、「dual bsd/gpl」、「dual mpl/gpl」和「proprietary」(關於模組是否可以採用非gpl許可權,如「proprietary」,這個在學術界和法律界都有爭議)。
大多數情況下,核心模組應遵循gpl相容許可權。linux核心模組最常見的是以module_license(「gpl v2」)語句宣告模組採用gpl v2。
(4)模組引數(可選)module_param(引數名,引數型別,引數讀/寫許可權)
模組引數是模組被載入的時候可以傳遞給它的值,它本身對應模組內部的全域性變數。
(5)模組匯出符號(可選)export_symbol(name);/
export_symbol_gpl(name);_gpl版本的巨集定義只能使符號對gpl許可的模組可用
核心模組可以匯出的符號(symbol,對應於函式或變數),若匯出,其他模組則可以使用本模組中的變數或函式。
(6)模組作者等資訊宣告(可選)
第四章 Linux核心模組
注 內容大多摘自 linux裝置驅動開發詳解 第2版 1.特點 2.模組程式結構 1 模組載入函式 一般需要 2 模組解除安裝函式 一般需要 3 模組許可證宣告 必須 4 模組引數 可選 5 模組匯出符號 可選 6 模組作者等資訊宣告 可選 3.模組的載入,解除安裝,檢視 4.printk函式 核心...
第四章 Linux核心模組
4.1 linux核心模組簡介 核心模組特點 1 模組本身不被編譯進核心映像中,從而控制核心的大小。2 模組被載入後,它跟核心中的其他部分完全一樣。核心載入命令 lsmod 核心解除安裝命令 rmmod 加強型核心載入函式 modprobe 優點 載入模組所以來的模組。模組之間的依賴關係可以在 li...
第四章Linux核心模組之五(模組引數)
4.5 模組引數 可以用 module param 引數名,引數型別,引數讀 寫許可權 為模組定義乙個引數,例如下列 定義了1個整型引數和1個字元指標引數 static int book num 4000 module param book num,int,s irugo static char b...