www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]Linux內(nèi)核是整體性結(jié)構(gòu),各個子系統(tǒng)緊密聯(lián)系,上接用戶控件,下接硬件,作為一個大程序在內(nèi)核控件運行。

如果將所有的設(shè)備驅(qū)動和內(nèi)核功能都集成在內(nèi)核中,則內(nèi)核會不斷的龐大,對我們的內(nèi)核裁剪也會帶來更大的挑戰(zhàn),為了解決這個問題,Linux內(nèi)核引入內(nèi)核模塊機(jī)制,通過動態(tài)加載內(nèi)核模塊,從而實現(xiàn)在運行過程中擴(kuò)展內(nèi)核的功能。

內(nèi)核模塊是什么?

1 內(nèi)核模塊是一種沒有經(jīng)過鏈接,不能獨立運行的目標(biāo)文件,是在內(nèi)核空間中運行的程序。經(jīng)過鏈接裝載到內(nèi)核里面成為內(nèi)核的一部分,可以訪問內(nèi)核的公用符號(函數(shù)和變量)。

2 內(nèi)核模塊可以讓操作系統(tǒng)內(nèi)核在需要時載入和執(zhí)行,在不需要時由操作系統(tǒng)卸載。它們擴(kuò)展了操作系統(tǒng)內(nèi)核的功能卻不需要重新啟動系統(tǒng)。

3 如果沒有內(nèi)核模塊,我們不得不一次又一次重新編譯生成單內(nèi)核操作系統(tǒng)的內(nèi)核鏡像來加入新的功能。這還意味著一個臃腫的內(nèi)核。

模塊機(jī)制的優(yōu)點:

1 減小內(nèi)核映像尺寸,增加系統(tǒng)靈活性;

2 節(jié)省開發(fā)時間;修改內(nèi)核,不必重新編譯整個內(nèi)核。

3 模塊的目標(biāo)代碼一旦被鏈入內(nèi)核,作用和靜態(tài)鏈接的內(nèi)核目標(biāo)代碼完全等價。

模塊機(jī)制的缺點:

1 對系統(tǒng)性能有一定損失;

2 使用不當(dāng)時會導(dǎo)致系統(tǒng)崩潰;

接下來通過介紹一下內(nèi)核模塊的實現(xiàn):

首先先附上模塊的代碼(hello_world.c)

1 #include

2 #include

3 #include

4

5 static int hello_init(void)

6 {

7 printk("hello world module! ");

8 return 0;

9 }

10

11 static void hello_exit(void)

12 {

13 printk("good bye module! ");

14 }

15

16 module_init(hello_init);

17 module_exit(hello_exit);

18

19 MODULE_LICENSE("GPL");

內(nèi)核模塊至少包含兩個函數(shù):

入口函數(shù)->初始化函數(shù)(xxx_init()):模塊加載時,被調(diào)用

出口函數(shù)->卸載函數(shù)(xxx_exit()):模塊卸載時,被調(diào)用

模塊的入口函數(shù)名和出口函數(shù)名可以任意命名,通過宏module_init()申明入口函數(shù),通過宏module_exit()申明出口函數(shù)。模塊需要包含頭文件:#include

內(nèi)核模塊證書:2.4內(nèi)核后,引入識別代碼是否在GPL許可下發(fā)布的機(jī)制 。在使用非公開的源代碼產(chǎn)品時會得到警告。通過宏MODULE_LICENSE(“GPL”),設(shè)置模塊遵守GPL證書,取消警告信息。

內(nèi)核模塊的構(gòu)建:

管理模塊源碼方法: ① 模塊源碼加入到內(nèi)核源碼樹中。② 模塊源碼飯仔內(nèi)核源碼樹之外。

注:本文介紹的是放在內(nèi)核源碼樹外編譯。

接下來是Makefile的實現(xiàn):

首先附上Makefile的源碼

1 KERNEL_DIR = /home/FAN/linux-kernel

2

3 all:

4 make -C $(KERNEL_DIR) M=`pwd` modules

5 clean:

6 make -C $(KERNEL_DIR) M=`pwd` modules clean

7 rm -rf modules.order Module.symvers

8

9 obj-m += hello_world.o

其中:

1、KERNEL_DIR:參數(shù),賦值內(nèi)核的位置,例如我的內(nèi)核源碼的路徑:/home/fan/linux-kernrl

2、當(dāng)終端執(zhí)行make時,會運行make -C $(KERNEL_DIR) M=`pwd` modules,其中M=`pwd`指向是模塊所在的路徑。

3、當(dāng)終端執(zhí)行make clean時,會運行下面兩條命令,將編譯生成的文件刪除

make -C $(KERNEL_DIR) M=`pwd` modules clean

rm -rf modules.order Module.symvers

4、obj-m += hello_world.o:其中 –m 表示將hello_world.c編譯成模塊

–y 表示將hello_world.c編譯進(jìn)內(nèi)核鏡像中

編譯生成文件:

在終端運行make,則會生成hello_world.ko文件.

 

 

將hello_world.ko發(fā)送到板子上,然后在板子上運行insmod hello_world.ko, 會調(diào)用hello_init()函數(shù)運行rmmod hello_world.ko,會調(diào)用hello_exit()函數(shù)

下圖為運行結(jié)果:

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉