版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
:本課件及其印刷物、的
歸
國嵌
所有,并保留所力:任何單,不得使用該課件及其印刷物、
從事商業(yè)、教學活國嵌的,應在范圍內(nèi)使用,并注明“來源:國嵌”。
上述
者,
其位或個人動。已經(jīng)取得。LINUX內(nèi)核模塊開發(fā)(V2014)課程索引Linux技術(shù)咨詢Linux學習號1.
內(nèi)核模塊Linux內(nèi)核的整體結(jié)構(gòu)非常龐大,其包含的組件也非常多,如何使用這些組件呢,
方法1:把所有的組件都編譯進內(nèi)核文件,即:zImage或bzImage,但這樣會導致一個問題:內(nèi)核文件過大
占用內(nèi)存過多有沒有一種機制能讓內(nèi)核文件本身并不包含某組件,而是在該組件需要被使用的時候,動態(tài)地添加到正在運行的內(nèi)核中呢?Linux技術(shù)咨詢Linux學習號1.
內(nèi)核模塊內(nèi)核模塊具有如下特點模塊本身并不被編譯進內(nèi)核文件(zImage或者bzImage)可以根據(jù)需求,在內(nèi)核運行期間動態(tài)的安裝或卸載。Linux技術(shù)咨詢Linux學習號2.內(nèi)核模塊設(shè)計Linux技術(shù)咨詢Linux學習號2.學習方法范例分析思維導圖設(shè)計自己動手編寫程序Linux技術(shù)咨詢Linux學習號2.1范例-oworld
#include
<linux/init.h>#include
<linux/module.h>static
int
o_init(void){printk(KERN_WARNING"return
0;o,
world
!\n");}static
void
o_exit(void){}printk(KERN_INFO
"Goodbye,world\n");module_init(module_exit(o_init);o_exit);Linux技術(shù)咨詢Linux學習號2.1手把手帶你來操作
分析內(nèi)核模塊設(shè)計思維導圖Linux技術(shù)咨詢Linux學習號2.1手把你寫代碼
利用思維導圖編寫內(nèi)核模塊Linux技術(shù)咨詢Linux學習號2.2手把手帶你來操作
使用makefile編譯內(nèi)核模塊Linux技術(shù)咨詢Linux學習號2.3
安裝與卸載安裝
insmodo.ko例:insmod卸載
rmmod例:rmmod
o查看
lsmodLinux技術(shù)咨詢Linux學習號2.4
模塊可選信息
Linux技術(shù)咨詢Linux學習號2.4.1
模塊申明1、MODULE_LICENSE(”遵守的協(xié)議”)申明該模塊遵守的
證協(xié)議,如:“GPL“、”GPL
v2“等2、MODULE_AUTHOR(“作者”)申明模塊的作者3、MODULE_DESCRIPTION(“模塊的功能描述")申明模塊的功能4、MODULE_VERSION("V1.0")申明模塊的版本Linux技術(shù)咨詢Linux學習號2.4.1
手把你寫代碼
添加內(nèi)核模塊申明Linux技術(shù)咨詢Linux學習號2.4.2
模塊參數(shù)
在應用程序中int
main(int
argc,
char**
argv)argc表示命令行輸入的參數(shù)個數(shù),argv中保存輸入的參數(shù)那么內(nèi)核模塊中可以通過命令行輸入?yún)?shù)么?答案:可以參數(shù)怎么傳入,傳入后保存在哪里?Linux技術(shù)咨詢Linux學習號2.4.2
模塊參數(shù)
通過宏module_param指定保存模塊參數(shù)的變量。模塊參數(shù)用于在加載模塊時傳遞參數(shù)給模塊。module_param(name,type,perm)name:變量的名稱type
變量類型
boo
布爾型
int
整型
charp
字符串型perm是例:int
a
=
3;char
*st;權(quán)限。S_IRUGO:讀權(quán)限S_IWUSR:寫權(quán)限module_param(a,int,
S_IRUGO);modu
am(st,charp,
S_
UG
;Linux技術(shù)咨詢Linux學習號2.4.2
手把你寫代碼
使用模塊參數(shù)Linux技術(shù)咨詢Linux學習號內(nèi)核符號?為什么要導出模塊中的內(nèi)核符號?2.4.2
符號導出
Linux技術(shù)咨詢Linux學習號內(nèi)核符號的導出使用宏EXPORT_SYMBOL(符號名)EXPORT_SYMBOL_GPL(符號名)2.4.2
符號導出
說明:其中EXPORT_SYMBOL_GPL只能用于包含GPL證的模塊。Linux技術(shù)咨詢Linux學習號2.4.3
手把你寫代碼
導出內(nèi)核符號Linux技術(shù)咨詢Linux學習號總結(jié)--對比應用對比應用程序,內(nèi)核模塊具有以下不同:應用程序是從頭(main)到尾執(zhí)行任務,執(zhí)行結(jié)束后從內(nèi)存中內(nèi)核模塊的初始化函數(shù)結(jié)束時,模塊仍然存在于內(nèi)核中,直到卸載函數(shù)被調(diào)用,模塊才從內(nèi)核中。Linux技術(shù)咨詢Linux學習號3.內(nèi)核打印printk是內(nèi)核中出現(xiàn)最頻繁的函數(shù)之一,通過將printk與printf對比,將有助于理解。相同點:打印信息不同點:printk在內(nèi)核中使用,printf在應用程序中使用printk允許根據(jù)嚴重程度,通過附加不同的“優(yōu)先級”來對消息分類。Linux技術(shù)咨詢Linux學習號在<linux/kernel.h>中定義了8種記錄級別。按照優(yōu)先級遞減的順序分別是:KERN_EMERG用于緊急消息,常常是那些KERN_ALERT需要立刻行動的消息。KERN_CRIT嚴重情況。KERN_ERR錯誤情況?!?lt;0>”前的消息。“<1>”3.內(nèi)核打印“<2>”“<3>”Linux技術(shù)咨詢Linux學習號KERN_WARNING
“<4>”有問題的警告KERN_NOTICE正常情況,但是仍然值得注意KERN_INFO信息型消息KERN_DEBUG用作調(diào)試消息“<5>”“<6>”“<7>”3.內(nèi)核打印Linux技術(shù)咨詢Linux學習號沒有指定優(yōu)先級的printk默認使用DEFAULT_MESSAGE_LOGLEVEL優(yōu)先級,它是一個在kernel/printk
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 純色背景課件教學課件
- 2024年度金融IT系統(tǒng)集成與維護合同
- 2024年商標許可使用合同 規(guī)定許可范圍與使用期限
- 2024廠區(qū)綠化養(yǎng)護合同
- 2024年度氨水行業(yè)綠色發(fā)展與環(huán)保合作協(xié)議
- 2024年品牌授權(quán)與連鎖加盟合同
- 2024年城市軌道交通安全監(jiān)控系統(tǒng)建設(shè)合同
- 2024年度房地產(chǎn)買賣與租賃合同
- 2024年度委托加工合同標的原料提供與加工質(zhì)量
- 2024胡柚買賣合同范文
- 安全培訓總結(jié)及效果評價
- 系統(tǒng)集成項目管理工程師(基礎(chǔ)知識、應用技術(shù))合卷軟件資格考試(中級)試題及解答參考(2025年)
- 通信業(yè)務協(xié)議
- 2024新信息科技七年級《第一單元 探尋互聯(lián)網(wǎng)新世界》大單元整體教學設(shè)計2022課標
- 2024年巴黎奧運會
- 工作人員外出審批單
- DB1331T 080-2024 雄安新區(qū)零碳建筑技術(shù)標準
- NB-T+10488-2021水電工程砂石加工系統(tǒng)設(shè)計規(guī)范
- 青年你為什么要入團-團員教育主題班會-熱點主題班會課件
- 2024年畜禽屠宰企業(yè)獸醫(yī)衛(wèi)生檢驗人員考試試題
- 2024年度-《醫(yī)療事故處理條例》解讀
評論
0/150
提交評論