核心模組開發學習筆記(四)

2021-10-12 03:00:10 字數 949 閱讀 2607

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表示包含了命令列引數的字串列...