1.遵循雙許可證
module_license
("dual bsd/gpl"
);
2.乙個簡單的核心模組
(1)加static後別的. c 就不能呼叫了,限定了函式的作用域,僅限於本檔案中使用;核心龐大,防止和其它模組衝突,盡量在核心程式設計中加上static。
(2)kern_alert是指的訊息級別的意思,總共有8種(0~7)
kernel printk資訊顯示級別
#include
#include
#include
module_license
("gpl");
//指定本模組所遵循的協議(gpl協議)
static
int __init hello_2_init
(void
)static
void __exit hello_2_exit
(void
)//指定自己的載入和解除安裝函式
modules_init (hello_2_init)
;modules_exit (hello_2_exit)
;
3.模組動態傳參函式
有些變數,我們希望在模組載入時,能改變他們的值
module_param(引數名,引數型別,引數讀寫/寫許可權)
例:module_param(myshort,short,0000);
insmod hello.ko myshort=55
4.modinfo可以檢視模組資訊
5.匯出符號
export_symbol(符號名)
export_symbol_gpl(符號名)
符號名可以是變數名,函式名等,因為預設情況下,這些都是只在本模組內使用的,如果其他模組要可以使用,必須要使用匯出符號,這樣其他模組就可以使用了。
Linux學習筆記 核心模組
模組 是linux高效利用微核心,同時不會降低系統效能與優點的一種方法。幾乎linux核心的每個高層元件 檔案系統 裝置驅動 網路,都可以作為模組進行編譯。linux的發布版,充分使用模組方式全面地支援多種品牌型號的硬體。但在某個計算機上只會有效載入其中乙個驅動程式。這樣核心就不會因為裝載那些數以百...
Ruby學習筆記四 模組
一 模組定義及引用,模組就是一段 裡面有一些方法放一起。定義模組用module.end 模組與類非常相似,但是 a 模組不可以有例項物件 b 模組不可以有子類。include math puts sqrt 91 module me def sqrt a puts a a return a a end...
python學習筆記 四 模組
模組實現函式重用,import匯入模組。import sys for i in sys.argv print i 執行結果 c users liyz b desktop work func.py 其中,sys模組包含了與python直譯器和環境有關的函式。sys.argv表示包含了命令列引數的字串列...