秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

嵌入式linux內(nèi)核的配置及編譯File課件

上傳人:494895****12427 文檔編號:252560783 上傳時間:2024-11-17 格式:PPT 頁數(shù):32 大小:269.29KB
收藏 版權(quán)申訴 舉報 下載
嵌入式linux內(nèi)核的配置及編譯File課件_第1頁
第1頁 / 共32頁
嵌入式linux內(nèi)核的配置及編譯File課件_第2頁
第2頁 / 共32頁
嵌入式linux內(nèi)核的配置及編譯File課件_第3頁
第3頁 / 共32頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《嵌入式linux內(nèi)核的配置及編譯File課件》由會員分享,可在線閱讀,更多相關(guān)《嵌入式linux內(nèi)核的配置及編譯File課件(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,可編輯ppt,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,二級,三級,四級,五級,可編輯ppt,*,內(nèi)核裁剪篇,1,可編輯ppt,內(nèi)核裁剪篇1可編輯ppt,為什么要裁減內(nèi)核,自己定制編譯的內(nèi)核運行更快(具有更少的代碼),系統(tǒng)將擁有更多的內(nèi)存(內(nèi)核部分將不會被交換到虛擬內(nèi)存中),不需要的功能編譯進入內(nèi)核可能會增加被系統(tǒng)攻擊者利用的漏洞,將某種功能編譯為模塊方式會比編譯到內(nèi)核內(nèi)的方式速度要慢一些,2,可編輯ppt,為什么要裁減內(nèi)核自己定制編譯的內(nèi)核運行更快(具有更少的代碼),如何升級內(nèi)核,添加進內(nèi)核的方

2、式:,將新增加部分編譯到內(nèi)核中(build-in),把新增加部分編譯成模塊(module),動態(tài)加載。,各自特點:,編譯到內(nèi)核中,在內(nèi)核啟動時就可以自動支持相應部分的功能,這樣的,優(yōu)點,是方便、速度快,機器一啟動,用戶就可以使用這部分功能了;,缺點,是會使內(nèi)核變得龐大起來,不管你是否需要這部分功能,它都會存在。,建議,經(jīng)常使用的部分直接編譯到內(nèi)核中,比如網(wǎng)卡。,如果編譯成模塊,就會生成對應的.o文件,在使用的時候可以動態(tài)加載,,優(yōu)點,是不會使內(nèi)核過分龐大,,缺點,是你得自己來調(diào)用這些模塊。,3,可編輯ppt,如何升級內(nèi)核添加進內(nèi)核的方式:3可編輯ppt,內(nèi)核的模塊式結(jié)構(gòu),內(nèi)核模塊是Linux內(nèi)

3、核向外部提供的一個接口,其全稱為動態(tài)可加載內(nèi)核模塊(Loadable Kernel Module,LKM),簡稱為模塊。Linux內(nèi)核之所以提供模塊機制,是因為它本身是一個單內(nèi)核(monolithic kernel)。單內(nèi)核的最大優(yōu)點是效率高,因為所有的內(nèi)容都集成在一起,但其缺點是可擴展性和可維護性相對較差,模塊機制就是為了彌補這一缺陷。,4,可編輯ppt,內(nèi)核的模塊式結(jié)構(gòu)內(nèi)核模塊是Linux內(nèi)核向外部提供的一個接口,模塊,模塊是具有獨立功能的程序,它可以被單獨編譯,但不能獨立運行。它在運行時被鏈接到內(nèi)核作為內(nèi)核的一部分在內(nèi)核空間運行,這與運行在用戶空間的進程是不同的。,模塊通常由一組函數(shù)和數(shù)

4、據(jù)結(jié)構(gòu)組成,用來實現(xiàn)一種文件系統(tǒng)、一個驅(qū)動程序或內(nèi)核中其他上層的功能。,5,可編輯ppt,模塊 模塊是具有獨立功能的程序,它可以被單獨編譯,但不能獨立,模塊與內(nèi)核的關(guān)系,模塊和內(nèi)核都在內(nèi)核空間運行,模塊編程在一定意義上就是內(nèi)核編程。因為內(nèi)核版本的每次變化使得其中的某些函數(shù)名也會相應地發(fā)生變化,因此模塊編程與內(nèi)核版本密切相關(guān)。本課中所涉及的內(nèi)核編程基于的Linux內(nèi)核為24x版本,對于其他版本,可能還需要做一些調(diào)整。,6,可編輯ppt,模塊與內(nèi)核的關(guān)系 模塊和內(nèi)核都在內(nèi)核空間運行,模塊編程在一定,應用程序與內(nèi)核模塊的比較,C語言應用程序,內(nèi)核模塊程序,使用函數(shù),libc庫,內(nèi)核函數(shù),運行空間,用

5、戶空間,內(nèi)核空間,運行權(quán)限,普通用戶,超級用戶,入口函數(shù),main(),init_module(),出口函數(shù),exit(),cleanup_module(),編譯,gcc-c,gcc c D _KERNEl_ _DMOKULE,連接,gcc,Gcc,運行,直接運行,insmod,調(diào)試,gdb,kdbug,kdb,kgdb等,7,可編輯ppt,應用程序與內(nèi)核模塊的比較C語言應用程序內(nèi)核模塊程序使用函數(shù)l,名字空間污染namespace pullution,當存在大量的函數(shù)和全局變量,并且它們的名字沒有明確的含義以至于難以區(qū)別時,就會發(fā)生所謂的名字空間污染。,程序員需花費更多的時間和精力去記住這些

6、已經(jīng)保留的名字并為新符號尋找一個不重復的名字。,名字空間沖突可能照成很多問題,如加載模塊失敗等古怪問題,解決辦法,將所有符號定義為靜態(tài)變量,對于非全局變量的符號前加上一個內(nèi)核中唯一的前綴。,8,可編輯ppt,名字空間污染namespace pullution 當存在,用戶空間與內(nèi)核空間,操作系統(tǒng)的作用,為程序提供一個計算機硬件的一致視圖。,負責程序的獨立操作以及保護資源不受非法訪問。,內(nèi)核運行在最高級(管理員模式 supervisor mode),可以進行所有操作。,應用程序運行在優(yōu)先級最低即所謂的用戶模式(user mode),在這一級中處理器控制著對硬件的直接訪問以及對內(nèi)存的非授權(quán)訪問。,

7、9,可編輯ppt,用戶空間與內(nèi)核空間操作系統(tǒng)的作用9可編輯ppt,lsmod 查看已注冊的內(nèi)核,10,可編輯ppt,lsmod 查看已注冊的內(nèi)核 10可編輯ppt,內(nèi)核模塊實例,#define _KERNEL_,#define MODULE,#include,#include,int init_module(void),printk(Hellow World!n”);,return 0;,),void cleanup_module(void),printk(Goodbye,cruel world!n”);,),module_init(hello_init);module_exit(hello_

8、exit);,11,可編輯ppt,內(nèi)核模塊實例#define _KERNEL_ 11可編,模塊主要函數(shù)及定義,頭文件及宏定義,#define _KERNEL_,#define MODULE,#include,#include,module_init():模塊的初始化函數(shù),module_exit():模塊的卸載函數(shù),初始化函數(shù)和卸載函數(shù)必須成對出現(xiàn)。,模塊常用信息:作者、描述、版權(quán)等,,MODULE_AUTHOR(author);MODULE_DESCRIPTION(the description);MODULE_LICENSE(GPL);,寫內(nèi)核或內(nèi)核模塊不能用寫應用程序時的系統(tǒng)調(diào)用或函數(shù)庫.

9、,12,可編輯ppt,模塊主要函數(shù)及定義頭文件及宏定義12可編輯ppt,模塊的編譯,KDIR=/YF2410/kernel,INCLUDEDIR=$(KDIR)/include,CFLAGS=-D_KERNEL_-DMODULE-I$(INCLUDEDIR),CC=arm-linux-gcc,OBJS=hello.o,$(OBJS):hello.c,$(CC)$(CFLAGS)-c$,clean:,-rm-f$(OBJS)*.o,13,可編輯ppt,模塊的編譯KDIR=/YF2410/kernel13可編,模塊的加載與卸載,Insmod./hello.o,rmmod hello,14,可編輯p

10、pt,模塊的加載與卸載Insmod./hello.o14可編輯p,modutils,modutils是管理內(nèi)核模塊的一個軟件包。用戶可以在任何提供內(nèi)核源代碼的地方獲取modutils(modutils-xyztar,gz)源代碼,然后選擇最高級別的、patchxyz等于或小于當前版本的內(nèi)核版本,安裝后在sbin目錄下就會有insmod、rmmod、ksyms、lsmod、modprobe等實用程序。當然,通常在加載Linux內(nèi)核時,modutils已經(jīng)被載入。,15,可編輯ppt,modutils modutils是管理內(nèi)核模塊的一個軟,Modutils的常用命令,insmod命令,調(diào)用ins

11、mod程序,把需要插入的模塊以目標代碼的形式插入到內(nèi)核中。在插入的時候,insmod自動調(diào)用init_module()函數(shù)運行。注意,只有超級用戶才能使用這個命令。,格式,#insmod pathmodulename.o,rmmod命令,調(diào)用rmmod程序,將已經(jīng)插入內(nèi)核的模塊從內(nèi)核中移出。rmmod會自動運行 cleanup_module()函數(shù),,格式:,#rmmod pathmodulename.o,16,可編輯ppt,Modutils的常用命令insmod命令16可編輯ppt,Modutils的常用命令,lsmod命令,調(diào)用lsmod程序?qū)@示當前系統(tǒng)中正在使用的模塊信息。實際上這個程

12、序的功能就是讀取procmodules文件中的數(shù)據(jù)。,格式為:,#lsmod,ksyms命令,Ksyms這個程序用來顯示內(nèi)核符號和模塊符號表的信息。與lsmod相似,它的功能是讀取/proc文件系統(tǒng)中另一個文件/proc/ksyms的內(nèi)容,17,可編輯ppt,Modutils的常用命令lsmod命令17可編輯ppt,模塊的導出,和用戶空間的應用程序不同的是,引入一個模塊的目的常常是為了給內(nèi)核提供一些routine,來完成特定的功能,很少有模塊什么符號都不導出。,Linux為用戶提供了如下宏:,EXPORT_SYMBOL(var);/輸出symbol varEXPORT_SYMBOL_GPL(v

13、ar);/輸出的symbol版權(quán)為GPL,18,可編輯ppt,模塊的導出和用戶空間的應用程序不同的是,引入一個模塊的目的常,內(nèi)核符號表,模塊與模塊之間的共享方式,共享變量,函數(shù),內(nèi)核只把各個模塊中主要的變量和函數(shù)放在一個特定 的區(qū)段,這些變量和函數(shù)統(tǒng)稱為,符號,。,對于內(nèi)核這個特殊的母模塊,在kemelksymsc中定義了可以從中“移出”的符 號。,19,可編輯ppt,內(nèi)核符號表模塊與模塊之間的共享方式19可編輯ppt,模塊的依賴關(guān)系,模塊依賴,如前所述,內(nèi)核符號表記錄了所有模塊可以訪問的符號及相應的地址。當一個新的 模塊被裝入內(nèi)核后,它所聲明的某些符號就會被登記到這個表中,使這些符號可能被其

14、 他模塊所引用,這就引出了模塊依賴問題。一個模塊A引用從另一個模塊B中移出的符號,叫做模塊B被模塊A引用,或者 模塊A依賴模塊B。如果要鏈接模塊A,必須先鏈接模塊B。這種模塊間相互依賴的關(guān) 系叫做模塊依賴。,20,可編輯ppt,模塊的依賴關(guān)系模塊依賴20可編輯ppt,模塊引用計數(shù)器,為了確保安全地卸載模塊,每個模塊都有一個引用計數(shù)器。當執(zhí)行模塊所涉及的操 作時就遞增該模塊的計數(shù)器,在操作結(jié)束時就遞減這個計數(shù)器。另外,當模塊B被模塊 A引用時,模塊B的引用計數(shù)器就遞增;引用結(jié)束,計數(shù)器遞減。什么時候可以卸載這 個模塊?當然只有這個計數(shù)器值為0的時候。例如,當一個文件系統(tǒng)還安裝在系統(tǒng)中時 就不能將

15、其卸載,而當這個文件系統(tǒng)不再被使用時,引用計數(shù)器為0,可以卸載。,在linuxmoduleh文件中定義了如下三個宏來維護計數(shù)器:,MOD INC USE COUNT 當前模塊計數(shù)器加1,MOD DEC USE COUNT 當前模塊計數(shù)器減1,MOD m USE 計數(shù)器非0時返回真,21,可編輯ppt,模塊引用計數(shù)器 為了確保安全地卸載模塊,每個模塊都有一個引用,內(nèi)核的編譯,22,可編輯ppt,內(nèi)核的編譯22可編輯ppt,內(nèi)核簡介,內(nèi)核是一個操作系統(tǒng)的核心。它負責管理系統(tǒng)的進程、內(nèi)存、設備驅(qū)動程序、文件 和網(wǎng)絡系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。,Linux的一個重要特點就是其源代碼的公開性。其所有

16、的內(nèi)核源程序都可以在 usrsrcLinux下找到,大部分應用軟件都是遵循GPL設計的,用戶可以獲取相應的源程 序代碼。,23,可編輯ppt,內(nèi)核簡介 內(nèi)核是一個操作系統(tǒng)的核心。它負責管理系統(tǒng)的進程、內(nèi),配置內(nèi)核所需指令,#make config,基于文本的、最為傳統(tǒng)的配置界面。,#make menuconfig,基于文本菜單的配置界面,字符終端下推薦使用。,#make xconfig,基于圖形窗口模式的配置界面,Xwindow環(huán)境下推薦使用。,#make oldconfig,如果只想在原來內(nèi)核配置的基礎(chǔ)上修改一些小地方,用此命令會省去不少麻煩,24,可編輯ppt,配置內(nèi)核所需指令#make config24可編輯ppt,1,代碼成熟度選項,對那些還在測試階段的代碼,驅(qū)動模塊等的支持。,對那些已經(jīng)老舊的,被現(xiàn)有文件替代了的驅(qū)動,代碼的支持,可以不選。,動態(tài)加載模塊支持選項,支持模塊加載功能,該項用來支持跨內(nèi)核版本的模塊支持。,通過kerneld程序的幫助在需要的時候自動載入或卸載那些可載入式的模塊。,系統(tǒng)類型,主要是CPU類型,以及于此相關(guān)的內(nèi)容,常用設備設置,可熱拔插的設備的支持,網(wǎng)

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!