




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
linux操作系統(tǒng)結(jié)構(gòu)第一頁,共30頁。操作系統(tǒng)(OS)的概念
一個系統(tǒng)管理程序,管理計算機的資源,給用戶一個使用這些資源的平臺一個服務(wù)程序,操作系統(tǒng)都是為用戶應(yīng)用程序服務(wù)的,服務(wù)的方式是通過系統(tǒng)調(diào)用systemcallLinux是一個多任務(wù),跨平臺的現(xiàn)代操作系統(tǒng)第二頁,共30頁。為什么要有操作系統(tǒng)多任務(wù)的要求統(tǒng)一的服務(wù)接口,合理使用資源,如內(nèi)存管理并發(fā)時對資源使用沖突減少開發(fā)的難度安全性的要求網(wǎng)絡(luò)(TCP/IP)的使用GUI的使用要求應(yīng)用程序移植性的要求用戶操作的方便性第三頁,共30頁。操作系統(tǒng)的組成進程管理模塊內(nèi)存管理模塊文件系統(tǒng)管理模塊設(shè)備管理模塊異常和中斷管理模塊網(wǎng)絡(luò)協(xié)議模塊……第四頁,共30頁。進程管理
進程(process)的概念系統(tǒng)的第一個進程Init用戶進程如何運行和退出記錄進程的信息,進程控制塊PCB系統(tǒng)調(diào)度,不同的系統(tǒng)有不同的策略用戶進程進入系統(tǒng)的唯一途徑,systemcall第五頁,共30頁。內(nèi)存管理
內(nèi)存是系統(tǒng)資源的一種內(nèi)存的分類SRAM,SDRAM,FB,Registers,外設(shè)片上內(nèi)存物理內(nèi)存的管理虛擬內(nèi)存的管理,內(nèi)核空間與用戶空間內(nèi)核與用戶內(nèi)存的分配內(nèi)存碎片的產(chǎn)生和避免第六頁,共30頁。文件系統(tǒng)管理
永久性存儲設(shè)備,disk,flash,sd,cf分區(qū)、格式化及文件一個簡單的文件系統(tǒng)的例子系統(tǒng)看存儲地址是線性進程看待文件的統(tǒng)一化和抽象化第七頁,共30頁。設(shè)備管理
HAL層的概念,開放性的理念設(shè)備的驅(qū)動系統(tǒng)要記錄和管理設(shè)備的存在安全使用設(shè)備設(shè)備是一種特殊的文件進程如何使用設(shè)備,open/close,read/write,ioctl第八頁,共30頁。Linuxkernel歷史1991年由當時的芬蘭學(xué)生linustorvalds編寫并以GNUGPL的方式發(fā)布到Internet上,稱為0.11版1994年,出1.0.0版本1996年,出2.0版本1999年,出2.2版本2001年,出2.4版本2003年,出2.6版本,至今都穩(wěn)定在該版本第九頁,共30頁。Linuxkernel的特點類Unix,遵循POSIX標準支持很多的體系結(jié)構(gòu),如X86,Arm,Mips等等,有極強的平臺可伸縮性O(shè)penSource(GNUGPL)單內(nèi)核,開放可擴展真正的多任務(wù)多用戶具有強大的網(wǎng)絡(luò)功能,尤其對Tcp/ip支持開發(fā)功能強,開發(fā)環(huán)境免費設(shè)備獨立性,系統(tǒng)把所有外部設(shè)備統(tǒng)一當作成文件來看待及操作可靠的系統(tǒng)安全……
第十頁,共30頁。Linux系統(tǒng)軟件層次結(jié)構(gòu)第十一頁,共30頁。Linux中處理器的運行LinuxKernel初始化完畢后,程序運行在以下的上下文空間中:1)運行于用戶空間,執(zhí)行用戶程序2)運行于內(nèi)核空間,處于當前進程的上下文3)運行于中斷,處于中斷上下文,與進程無關(guān),因為中斷的不可預(yù)知第十二頁,共30頁。fread()文件的執(zhí)行舉例用戶進程在用戶空間,使用C庫fread()讀文件Fread()調(diào)用read()系統(tǒng)調(diào)用,進入系統(tǒng)空間,執(zhí)行系統(tǒng)代碼系統(tǒng)根據(jù)文件對存儲設(shè)備進行數(shù)據(jù)請求,在數(shù)據(jù)沒準備就緒是讓出CPU使其他進程運行。存儲設(shè)備數(shù)據(jù)準備就緒,向CPU發(fā)出中斷請求,CPU響應(yīng)進入中斷上下文,并喚醒該文件的讀進程在某時刻,讀文件的進程再次運行,取到數(shù)據(jù),返回用戶空間第十三頁,共30頁。獲取Linux內(nèi)核源代碼從官方網(wǎng)站獲取:,主要是X86平臺的版本以BSP包的方式獲取,主要在嵌入式的平臺上用的方式補丁,從版本2.6.20升級到2.6.21#cd到2.6.20linux目錄#patch–p1<patch-2.6.21第十四頁,共30頁。Linux2.6內(nèi)核源碼目錄結(jié)構(gòu)第十五頁,共30頁。Linux2.6內(nèi)核配置與編譯交叉編譯器:
運行在一種體系的CPU(通常是X86)的編譯器,對其編譯的程序產(chǎn)生另外一種體系(如ARM/MIPS)的指令的編譯器叫交叉編譯器安裝ARM交叉編譯器#tarxzvfcrass-3.3.2.tgz
把解開的目錄的bin/目錄的絕對路徑增加到環(huán)境變量$PATH中第十六頁,共30頁。Linux2.6內(nèi)核配置與編譯安裝ARMLinux2.6源碼包#tarxzvfgec_linux-.tgz第十七頁,共30頁。Linux2.6內(nèi)核配置與編譯內(nèi)核配置系統(tǒng):
配置命令#makeconfig(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)#makemenuconfig(基于文本菜單的配置界面,字符終端下推薦使用)#makexconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使)#makegconfig(基于gtk的圖形配置界面)
這些命令產(chǎn)生的配置選項給用戶,用戶選擇->退出->保存后產(chǎn)生.config文件,文件中包含有各種選擇了的配置選項,以供Makefile使用,Makefile在會根據(jù).config的選項來產(chǎn)生autoconf.h,autoconf.h是以C語言的形式定義的各編譯選項,供kernel的源文件include第十八頁,共30頁。Linux2.6內(nèi)核配置與編譯選擇相應(yīng)的配置時,有三種選擇,它們分別代表的含義如下:
Y--將該功能編譯進內(nèi)核
N--不將該功能編譯進內(nèi)核
M--將該功能編譯成模塊,可以在需要時動態(tài)插入到內(nèi)核中makexconfig,使用鼠標就可以選擇對應(yīng)的選項。makemenuconfig,則需要使用空格鍵進行選取。如果有不明白的地方,按[shift]+?的組合鍵來查看說明第十九頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的原則1)大部分選項可以使用其缺省值或者BSP選用缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。2)將與內(nèi)核其它部分關(guān)系較遠且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊。有利于減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)存;3)不需要的功能就不要選;4)與內(nèi)核關(guān)心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。第二十頁,共30頁。Linux2.6內(nèi)核配置與編譯配置工作過程:
Makefile分布在Linux內(nèi)核源代碼中的Makefile,定義Linux內(nèi)核的編譯規(guī)則;頂層目錄的Makefile管理整個Linux內(nèi)核的配置編譯。
配置工具不同的內(nèi)核配置方式,通過不同的配置工具完成。script目錄下提供了這些配置工具。如menuconfig目標使用mconf。Kconfig文件2.6內(nèi)核引入的配置文件,是內(nèi)核配置選項的源文件。arch/$(ARCH)/Kconfig文件是主Kconfig文件,主Kconfig文件調(diào)用其他目錄的Kconfig文件。這些Kconfig文件形成樹狀關(guān)系-->樹狀菜單。第二十一頁,共30頁。Linux2.6內(nèi)核配置與編譯配置工作過程:當用戶執(zhí)行配置命令,Makefile調(diào)用配置工具mconf,mconf從arch/$(ARCH)/Kconfig開始搜索各目錄中的Kconfig文件,并根據(jù)這些文件形成圖形化的配置界面,給用戶進行配置Kconfig文件是產(chǎn)生.config文件的輸入文件,也就是說.config中的選項是由Kconfig決定的這是Linux2.6內(nèi)核獨有的配置系統(tǒng)用戶可以根據(jù)需要增加和修改其中的配置選項第二十二頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的注意選項Codematurityleveloptions--->應(yīng)該選擇[*]Promptfordevelopmentand/orincompletecode/drivers這將會在設(shè)置界面中顯示還在開發(fā)或者還沒有完成的代碼與驅(qū)動.因為有許多設(shè)備可能必需選擇這個選項才能進行配置,實際上它是安全的。第二十三頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的注意選項2Generalsetup---> 大部分保持默認[*]Supportforpagingofanonymousmemory(swap)應(yīng)該選擇這個選項將使你的內(nèi)核支持虛擬內(nèi)存。Pc上應(yīng)該選擇,而嵌入式上一般不選[*]SystemVIPC應(yīng)該選擇 為進程提供通信機制。有些程序只有在選Y的情況下才能運行,這里一定要選。[*]POSIXMessageQueues POSIX的消息隊列,它同樣是一種IPC,應(yīng)該選擇[*]Supportforhot-pluggabledevices支持熱插拔的,若是為普通電腦配置內(nèi)核,則最好選擇第二十四頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的注意選項3Loadablemodulesupport--->[*]Enableloadablemodulesupport應(yīng)該選擇 這個選項可以讓你的內(nèi)核支持模塊。一般一些不常用到的驅(qū)動或特性可以編譯為模塊以減少內(nèi)核的體積。[*]Moduleunloading應(yīng)該選擇 這個選項可以讓你卸載不再使用的模塊,如果不選的話你將不能卸載任何模塊[*]Forcedmoduleunloading 強行卸載模塊,可以把正在使用中的模快卸載掉。做內(nèi)核開發(fā)或者驅(qū)動開發(fā)的時候,有一定的好處。但一般用戶不應(yīng)該選擇。第二十五頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的注意選項4Executable--->[*]KernelsupportforELFbinaries一定要選5DeviceDrivers--->MemoryTechnologyDevices(MTD)--->存儲設(shè)備層,大部分的flash芯片驅(qū)動都基于MTD。用于嵌入式系統(tǒng)。Blockdevices<M>Loopbackdevicesupport可以將一個文件掛成一個文件系統(tǒng)。mountiso文件第二十六頁,共30頁。Linux2.6內(nèi)核配置與編譯配置的注意選項6--->必須將根文件系統(tǒng)直接編譯到內(nèi)核中。并且在這里選擇系統(tǒng)支持的文件系統(tǒng)。第二十七頁,共30頁。Linux2.6內(nèi)核配置與編譯cd到ARMLinux2.6的安裝目錄中#make在當前目錄中將產(chǎn)生vmlinux即為內(nèi)核文件#makemodules#makemodules_install將產(chǎn)生在內(nèi)核代碼樹中以模塊方式編譯的模塊第二十八頁,共30頁。Linux內(nèi)核啟動流程bootloader加載kernel到內(nèi)存arch/mips/kernel/head.Sinit/main.cstart_kernel()--體系結(jié)構(gòu)的初始化set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人防護知識培訓(xùn)課件
- 高中語文老師新學(xué)期工作計劃(5篇)
- DB31∕T 343-2019 汽車快修企業(yè)技術(shù)條件
- 2025年實驗室安全管理課件:實現(xiàn)安全與效率的雙贏
- 八省聯(lián)考試卷分析(英語西安外國語附中)
- 女性健康知識講座超美的課件
- 某汽車品牌虹口體育場試駕體驗活動
- 環(huán)保設(shè)備制造投資協(xié)議
- 如何實現(xiàn)技術(shù)人員向管理人員過渡
- 臨床醫(yī)生小知識培訓(xùn)課件
- KTV商務(wù)禮儀培訓(xùn)
- 三級安全教育試題(公司級、部門級、班組級)
- 2024年《論教育》全文課件
- 計算機網(wǎng)絡(luò)與信息安全(2024年版)課件 李全龍 第1-4章計算機網(wǎng)絡(luò)與信息安全概述-網(wǎng)絡(luò)層服務(wù)與協(xié)議
- 人工智能教育背景下中小學(xué)教師智能教育素養(yǎng)提升路徑研究
- 2024年中級消防員考試題庫
- 必考古詩賞析知識點(九年級下冊)-2025年中考語文一輪復(fù)習
- 2024-2025學(xué)年人教版八年級物理上學(xué)期課后習題答案
- 遼寧省沈陽市大東區(qū)2024年中考化學(xué)模擬試題一
- 國能遼寧北票 200MW 風力發(fā)電項目地質(zhì)災(zāi)害危險性評估報告
- 江蘇省常州市教育學(xué)會2023-2024學(xué)年下學(xué)期八年級數(shù)學(xué)考試卷
評論
0/150
提交評論