![嵌入式實(shí)際操作系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/89bc1396-a969-435b-9615-954ca155c1c7/89bc1396-a969-435b-9615-954ca155c1c71.gif)
![嵌入式實(shí)際操作系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/89bc1396-a969-435b-9615-954ca155c1c7/89bc1396-a969-435b-9615-954ca155c1c72.gif)
![嵌入式實(shí)際操作系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/89bc1396-a969-435b-9615-954ca155c1c7/89bc1396-a969-435b-9615-954ca155c1c73.gif)
![嵌入式實(shí)際操作系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/89bc1396-a969-435b-9615-954ca155c1c7/89bc1396-a969-435b-9615-954ca155c1c74.gif)
![嵌入式實(shí)際操作系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/27/89bc1396-a969-435b-9615-954ca155c1c7/89bc1396-a969-435b-9615-954ca155c1c75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式實(shí)際操作系統(tǒng)基于i386體系結(jié)構(gòu)的Linux啟動(dòng)代碼分析Embedded Operating Systems3源代碼來源加壓縮后,建立SourceInsigt工程閱讀linux目錄下的README關(guān)于Linux的介紹該版本內(nèi)核支持的體系結(jié)構(gòu)如何配置、編譯、安裝Embedded Operating Systems4考慮Arch為i386在arch/i386下存在如下目錄I386的啟動(dòng)源代碼文件目錄I386的核心源代碼文件目錄I386的庫(kù)源代碼文件目錄I386的數(shù)學(xué)仿真源代碼文件目錄I386的內(nèi)存管理源代碼文件目錄I386的配置文件I386的體系相關(guān)部分的MakefileI386的Linux
2、內(nèi)核的鏈接描述文件Embedded Operating Systems5I386的啟動(dòng)代碼文件在arch/i386/boot目錄下在arch/i386/boot/compressed目錄下I386的體系結(jié)構(gòu)相關(guān)部分的啟動(dòng)代碼都采用匯編碼寫的啟動(dòng)扇區(qū)中的啟動(dòng)代碼,其目標(biāo)碼必然是512字節(jié)I386初始化內(nèi)核解壓縮Embedded Operating Systems6在arch/i386/kernel目錄下的.S文件在init目錄下32位啟動(dòng)代碼這是體系結(jié)構(gòu)無關(guān)部分,i386體系結(jié)構(gòu)相關(guān)部分的啟動(dòng),其目的就是進(jìn)入中的start_kernel處執(zhí)行Embedded Operating Systems7
3、閱讀對(duì)于i386平臺(tái),由于一些歷史的原因,因此Linux的啟動(dòng)比較復(fù)雜這個(gè)文檔包含如下內(nèi)容1、Linux/i386的啟動(dòng)協(xié)議(4個(gè))2、內(nèi)存布局圖3、實(shí)模式下的內(nèi)核頭結(jié)構(gòu)4、內(nèi)核的命令行(command line)Embedded Operating Systems85、啟動(dòng)配置示例6、裝載Linux的剩余部分7、特殊的命令行參數(shù)8、運(yùn)行內(nèi)核9、高級(jí)啟動(dòng)回調(diào)函數(shù)關(guān)于其中的一些內(nèi)容,我們將在合適的時(shí)候說明Embedded Operating Systems9閱讀頂層目錄下的Makefile找到缺省目標(biāo)鏈接Embedded Operating Systems10找到vmlinux找到vmlinux
4、所依賴的各個(gè)文件或者目標(biāo)可以看到vmlinux包含如下內(nèi)容+ CORE_FILES + DRIVERS+ NETWORKS + LIBSEmbedded Operating Systems11若make install在i386的Makefile中有install規(guī)則若make boot/bzImage/zImage等等,則要找到對(duì)應(yīng)的目標(biāo)然后進(jìn)行make boot在頂層的Makefile中可以找到boot規(guī)則bzImage/zImage可以在i386的Makefile中找到相應(yīng)規(guī)則其他的zXXX/bzXXX也都依賴于boot下的zImage/bzImage它們最終都找到i386/boot的M
5、akefileEmbedded Operating Systems12i386/boot的Makefile看i386/boot的Makefilez代表壓縮;b代表大內(nèi)核可見compressed下的vmlinux/bvmlinux為compressed/head.S + 壓縮后的頂層目錄下的vmlinuxzImage為bootsect + setup + compressed/vmlinuxbzImage為bbootsect + bsetup + compressed/bvmlinuxEmbedded Operating Systems13下面根據(jù)在bzImage/zImage中的順序,我們依次
6、看啟動(dòng)相關(guān)的源代碼和相關(guān)概念最后進(jìn)入Embedded Operating Systems14I386內(nèi)核的啟動(dòng)啟動(dòng)方式軟盤啟動(dòng)硬盤啟動(dòng)軟盤啟動(dòng)從開始運(yùn)行在進(jìn)入的源代碼講解之前,我們先看一下加載i386內(nèi)核的內(nèi)存布局圖Embedded Operating Systems15硬件角度:I386實(shí)模式下的內(nèi)存布局圖RAM1-MBROM-BIOSVIDEO-BIOSVRAM0 xA00000 xC00000 xF00000 x00000Embedded Operating Systems16I386內(nèi)核從實(shí)模式開始運(yùn)行首先看一下什么是實(shí)模式 實(shí)模式是為了兼容早期的CPU而設(shè)置的 i386系統(tǒng)總是始于實(shí)
7、模式 實(shí)模式下 地址總線:20位 內(nèi)存范圍:01MB 邏輯地址 = 段地址 + 段內(nèi)偏移段地址 = 段寄存器中的值*16 (或左移4位)段寄存器長(zhǎng)度:16bitEmbedded Operating Systems17加載I386內(nèi)核的內(nèi)存布局圖zImage/Image的內(nèi)核加載器所使用的經(jīng)典的內(nèi)存布局(1M=0 x100000)為Embedded Operating Systems18軟盤啟動(dòng), 0 x7c000 x90000 0 x7c00, BIOS 0 x90000, lilo 堆棧,0 x3ff4(0 x4000-12), 向下增長(zhǎng) 磁盤參數(shù)表,12Bytes,0 x3ff40 x40
8、00 顯示“Loading” Setup0 x90200 系統(tǒng) 小內(nèi)核,0 x10000(64KB處),低裝載 大內(nèi)核,0 x100000(1MB處),高裝載 setupEmbedded Operating Systems19硬盤啟動(dòng),兩階段引導(dǎo)裝載LILO(LInuxLOader)第一個(gè)扇區(qū)裝載LINUX0 x900000 x90200系統(tǒng)0 x100000 x100000跳轉(zhuǎn)到setupEmbedded Operating Systems20啟動(dòng)第一步,小結(jié)總之,在跳轉(zhuǎn)到setup的時(shí)候,內(nèi)存里面的代碼布局為0 x90000:bootsect0 x90200:setup低裝載:0 x100
9、00:帶解壓的vmlinux高裝載:0 x100000:帶解壓的bvmlinux 實(shí)模式下的內(nèi)核頭結(jié)構(gòu)包括bootsect的最后和setup開始的位置從bootsect的偏移0 x1F1開始,具體描述參見Embedded Operating Systems21Setup:0 x90200 初始化硬件設(shè)備并為內(nèi)核程序的執(zhí)行建立環(huán)境 內(nèi)存檢測(cè) 鍵盤 視頻 磁盤控制器 IBM微通道總線MCA PS/2設(shè)備(總線鼠標(biāo)) APM BIOS 若低裝載,將系統(tǒng)移動(dòng)到0 x1000處(4KB處)否則,不必 臨時(shí)IDT和臨時(shí)GDT FPU PIC, 16個(gè)硬件中斷中斷向量3247 實(shí)模式保護(hù)模式 Startup
10、_32Embedded Operating Systems22 在和中都定義了startup_32 但是中,被壓縮在vmlinux中還沒有解壓縮 只有的startup_32是可用的 zImage中,在0 x1000處 bzImage中,在0 x100000處Embedded Operating Systems23Startup_32初始化段寄存器和一個(gè)臨時(shí)堆棧初始化BSS段解壓縮高裝載或低裝載解壓縮0 x100000(1MB)跳轉(zhuǎn)到0 x100000處Embedded Operating Systems24解壓縮后,vmlinux在0 x100000處根據(jù),vmlinux的地址被鏈接為0 xc
11、0000000+0 x100000處如何正確運(yùn)行呢?此時(shí)仍然是實(shí)模式,還沒有進(jìn)入保護(hù)模式、分頁(yè)、映射好沒有長(zhǎng)跳轉(zhuǎn),只使用采用相對(duì)地址的近距離跳轉(zhuǎn)Embedded Operating Systems25 Startup_32 初始化段寄存器 建立進(jìn)程0的內(nèi)核堆棧 Setup_idt 拷貝系統(tǒng)參數(shù) 識(shí)別處理器 GDT、IDT Start_kernelEmbedded Operating Systems26與內(nèi)存相關(guān)的一些概念在實(shí)模式下,地址總線20位,訪存范圍為1MB,物理地址使用段址:偏移的方式表示段址保存在段寄存器中,段寄存器有:cs/ds/es/fs/gs16位寄存器,偏移也是16位,因此最
12、大段長(zhǎng)為216=0 x10000=64KB物理地址= 段寄存器16+偏移Embedded Operating Systems27保護(hù)模式下,地址總線32位,訪存范圍為4GB原來的段寄存器現(xiàn)在被稱作段選擇子,與GDT表配合使用GDT表由gdtr指示其位置和長(zhǎng)度使用特殊的指令進(jìn)行操作:sgdt/lgdtEmbedded Operating Systems28圖示descriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptordescriptorInterrupt Descriptor TableGlobal Descriptor TableGDTRIDTREmbedded Operating Systems29查看和中的gdt/ldt一般裝載gdt和idt之后,要重新裝載段寄存器cs、ds、es、fs、gscs通常
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年律師代理合同樣本
- 2025年倉(cāng)儲(chǔ)服務(wù)互借協(xié)議
- 2025年度教育機(jī)構(gòu)課程材料出版申請(qǐng)協(xié)議
- 股權(quán)合作與經(jīng)營(yíng)管理協(xié)議
- 2025年兼職會(huì)計(jì)顧問聘用合同樣本
- 2025年住宅裝潢用品選購(gòu)合同樣本
- 2025年亞洲太平洋貿(mào)易協(xié)議模式
- 2025年房屋租賃意向金策劃合作框架協(xié)議
- 2025年共投協(xié)議規(guī)范樣本
- 2025年不動(dòng)產(chǎn)權(quán)購(gòu)買合同樣本
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 產(chǎn)后抑郁癥講課課件
- 2024-2030年中國(guó)紫蘇市場(chǎng)深度局勢(shì)分析及未來5發(fā)展趨勢(shì)報(bào)告
- 銷售人員課件教學(xué)課件
- LED大屏技術(shù)方案(適用于簡(jiǎn)單的項(xiàng)目)
- 城市自來水廠課程設(shè)計(jì)
- 2024智慧城市數(shù)據(jù)采集標(biāo)準(zhǔn)規(guī)范
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語三年級(jí)下冊(cè)
- 歷年國(guó)家二級(jí)(Python)機(jī)試真題匯編(含答案)
- 第五單元任務(wù)二《準(zhǔn)備與排練》教學(xué)設(shè)計(jì) 統(tǒng)編版語文九年級(jí)下冊(cè)
- 虧損企業(yè)減虧專項(xiàng)治理方案
評(píng)論
0/150
提交評(píng)論