|  | |
| Linux內核模塊程序結構 | |
| Linux設(she)備(bei)驅動會以內(nei)核(he)模(mo)塊(kuai)(kuai)的(de)(de)形式出現,因此,學會編(bian)寫Linux內(nei)核(he)模(mo)塊(kuai)(kuai)編(bian)程(cheng)是學習Linux設(she)備(bei)驅動的(de)(de)先決(jue)條件。一個(ge)Linux內(nei)核(he)模(mo)塊(kuai)(kuai)主要由如下幾個(ge)部分(fen)組成:   (1)模塊加載函(han)數(shu)(一般需(xu)要)。 當通過insmod或modprobe命令加載(zai)內(nei)(nei)核(he)模(mo)(mo)塊時,模(mo)(mo)塊的(de)加載(zai)函數會自動被內(nei)(nei)核(he)執行,完成本模(mo)(mo)塊的(de)相關初始化工作。   (2)模塊卸(xie)載函數(一般(ban)需要)。  當通過rmmod命令卸載某模(mo)(mo)(mo)塊時,模(mo)(mo)(mo)塊的(de)(de)卸載函數(shu)會(hui)自動(dong)被內(nei)核(he)執行,完(wan)成與模(mo)(mo)(mo)塊卸載函數(shu)相反的(de)(de)功能。 (3)模塊許(xu)可證聲明(必須)。 許可證(LICENSE)聲明描述內(nei)核(he)模(mo)塊的許可權(quan)限,如(ru)果不聲明LICENSE,模(mo)塊被加載(zai)時(shi),將收到內(nei)核(he)被污染 (kernel tainted)的警告。 在Linux 2.6內核(he)中(zhong),可接受的LICENSE包(bao)括"GPL"、"GPL v2"、"GPL and additional rights"、"Dual BSD/GPL"、"Dual MPL/GPL"和"Proprietary"。 大多數情況下,內核模(mo)塊應遵循(xun)GPL兼容許(xu)可權。Linux 2.6內核模(mo)塊常見(jian)的是(shi)以(yi)MODULE_LICENSE( "Dual BSD/GPL" )語(yu)句(ju)聲(sheng)明模(mo)塊采用(yong)BSD/GPL雙LICENSE。 (4)模塊參數(可選(xuan))。 模(mo)塊(kuai)參數是模(mo)塊(kuai)被加載(zai)的(de)時候可以被傳遞(di)給它(ta)(ta)的(de)值,它(ta)(ta)本身對(dui)應模(mo)塊(kuai)內部的(de)全局變量(liang)。 (5)模(mo)塊導出符號(hao)(可選)。 內(nei)核模(mo)塊可(ke)以導出符號(symbol,對(dui)應于函數或(huo)變量),這樣其他模(mo)塊可(ke)以使用(yong)本模(mo)塊中的變量或(huo)函數。 (6)模塊作者等(deng)信息聲明(可選)。 華清遠見嵌入式linux視頻教程免費下載 熱點鏈接: 
         1、典型嵌入式Linux系統設置 |