![linux系統(tǒng)啟動(dòng)過(guò)程分析下資料_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e447952d-478a-4690-829c-243667f6b7e0/e447952d-478a-4690-829c-243667f6b7e01.gif)
![linux系統(tǒng)啟動(dòng)過(guò)程分析下資料_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e447952d-478a-4690-829c-243667f6b7e0/e447952d-478a-4690-829c-243667f6b7e02.gif)
![linux系統(tǒng)啟動(dòng)過(guò)程分析下資料_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e447952d-478a-4690-829c-243667f6b7e0/e447952d-478a-4690-829c-243667f6b7e03.gif)
![linux系統(tǒng)啟動(dòng)過(guò)程分析下資料_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e447952d-478a-4690-829c-243667f6b7e0/e447952d-478a-4690-829c-243667f6b7e04.gif)
![linux系統(tǒng)啟動(dòng)過(guò)程分析下資料_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/e447952d-478a-4690-829c-243667f6b7e0/e447952d-478a-4690-829c-243667f6b7e05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、linux系統(tǒng)啟動(dòng)過(guò)程分析下資料3、linux系統(tǒng)啟動(dòng)過(guò)程分析(下)資料第二節(jié) Linux0.01啟動(dòng)分析n引導(dǎo)過(guò)程的描述n引導(dǎo)流程和內(nèi)核鏡像文件n計(jì)算機(jī)加電過(guò)程nBIOSn操作系統(tǒng)引導(dǎo)部分代碼的分析n的分析n的分析n的作用n AT&T匯編語(yǔ)言初步引導(dǎo)過(guò)程的描述n引導(dǎo)流程和內(nèi)核鏡像文件n計(jì)算機(jī)加電過(guò)程nBIOS程序引導(dǎo)的步驟一般來(lái)說(shuō),操作系統(tǒng)的引導(dǎo)過(guò)程分兩個(gè)步驟:n首先,計(jì)算機(jī)硬件經(jīng)過(guò)開機(jī)自檢(Power On Self-Test,POST)之后,從軟盤或硬盤的固定位置裝載一小段代碼,這段代碼一般稱為“引導(dǎo)裝載器”。n然后,由引導(dǎo)裝載器負(fù)責(zé)裝入操作系統(tǒng)內(nèi)核鏡像文件內(nèi)核鏡像文件并將控制權(quán)
2、交給操 作 系 統(tǒng) 進(jìn) 行 進(jìn) 一 步 的 初 始 化 和 運(yùn) 行 操 作 系 統(tǒng)n引導(dǎo)裝載器非常小,一般只有幾百個(gè)字節(jié),而操作系統(tǒng)龐大而復(fù)雜,上述分成兩階段的引導(dǎo)過(guò)程,可將計(jì)算機(jī)中的固化軟件保持得足夠小,同時(shí)也便于實(shí)現(xiàn)對(duì)不同操作系統(tǒng)的引導(dǎo)。Linux0. 01內(nèi)核鏡像文件n由程序生成n寫入到磁盤(make disk & dd)計(jì)算機(jī)加電過(guò)程n當(dāng)機(jī)算機(jī)的電源鍵被按下時(shí),同這個(gè)鍵相聯(lián)的電信號(hào)線就會(huì)送出一個(gè)電信號(hào)給主板,主板將此電信號(hào)傳給供電系統(tǒng),供電系統(tǒng)開始工作,為整個(gè)系統(tǒng)供電,并送出一個(gè)電信號(hào)給BIOS,通知BIOS 供電系統(tǒng)已經(jīng)準(zhǔn)備完畢。隨后BIOS 啟動(dòng)一個(gè)程序,進(jìn)行主機(jī)自檢,主機(jī)
3、自檢的主要工作是確保系統(tǒng)的每一個(gè)部分都得到了電源支持,內(nèi)存儲(chǔ)器、主板上的其它芯片、鍵盤、鼠標(biāo)、磁盤控制器及一些I/O 端口正??捎茫撕?,自檢程序?qū)⒖刂茩?quán)還給BIOS。n接下來(lái)BIOS 讀取BIOS 設(shè)置,得到引導(dǎo)驅(qū)動(dòng)器的順序,然后依次檢查,直到找到可以用來(lái)引導(dǎo)的驅(qū)動(dòng)器(或說(shuō)可以用來(lái)引導(dǎo)的磁盤,包括軟盤、硬盤、光盤等),然后調(diào)用這個(gè)驅(qū)動(dòng)器上磁盤的引導(dǎo)扇區(qū)進(jìn)行引導(dǎo)?;据斎胼敵鱿到y(tǒng)BIOS n存放在ROM中的BIOS程序執(zhí)行開機(jī)是系統(tǒng)個(gè)部分自檢,經(jīng)過(guò)一系列操作之后,BIOS會(huì)將有關(guān)代碼和數(shù)據(jù)存放在內(nèi)存低端1MB末端的64KB處,然后跳轉(zhuǎn)到這個(gè)地方讓CPU進(jìn)入實(shí)地址模式工作n將內(nèi)核文件加載到內(nèi)存后
4、,LINUX不再使用BIOS功能,因此BIOS中斷向量表在引導(dǎo)過(guò)程中被覆蓋。nBIOS 將所檢查磁盤的第一個(gè)扇區(qū)(512B)載入內(nèi)存,放在0 x0000:0 x7c00 處,如果個(gè)扇區(qū)的最后兩個(gè)字節(jié)是“55 AA”,那么這就是一個(gè)引導(dǎo)扇區(qū),這個(gè)磁盤也就是一塊可引導(dǎo)盤。通常這個(gè)大小為512B 的程序就稱為引導(dǎo)程序(boot)。如果最后兩個(gè)字節(jié)不是“55AA”,那么BIOS 就檢查下一個(gè)磁盤驅(qū)動(dòng)器。BIOS 是怎么知道或說(shuō)分辨哪一個(gè)磁盤可以用來(lái)引導(dǎo)的呢?n引導(dǎo)程序所具有的特點(diǎn):n它的大小是512B,不能多一字節(jié)也不能少一字節(jié),因?yàn)锽IOS 只讀512B 到內(nèi)存中去。n它的結(jié)尾兩字節(jié)必須是“55 A
5、A”,這是引導(dǎo)扇區(qū)的標(biāo)志。n它總是放在磁盤的第一個(gè)扇區(qū)上(0 磁頭,0 磁道,1 扇區(qū)),因?yàn)锽IOS 只讀第一個(gè)扇區(qū)。利用BIOS 13 號(hào)中斷讀取磁盤扇區(qū)AH 寄存器:存放功能號(hào),為2 的時(shí)候,表示使用讀磁盤功能DL 寄存器:存驅(qū)動(dòng)器號(hào),表示欲讀哪一個(gè)驅(qū)動(dòng)器CH 寄存器:存磁頭號(hào),表示欲讀哪一個(gè)磁頭CL 寄存器:存扇區(qū)號(hào),表示欲讀的啟始扇區(qū)AL 寄存器:存計(jì)數(shù)值,表示欲讀入的扇區(qū)數(shù)量在設(shè)置了這幾個(gè)寄存器后,我們就可以使用 int 13 這條指令調(diào)用BIOS 13 號(hào)中斷讀取指定的磁盤扇區(qū),它將磁盤扇區(qū)讀入ES:BX 處,因此,在調(diào)用它之前,我們實(shí)際上還需要設(shè)置ES 與BX 寄存器,以指出數(shù)
6、據(jù)在內(nèi)存中存放的位置0.01版內(nèi)核,以軟盤啟動(dòng)為例:1 開機(jī)2 BIOS 加電自檢 ( Power On Self Test,POST ),內(nèi)存地址為 0ffff:00003 將軟盤第一個(gè)扇區(qū) (0頭0道1扇區(qū), 也就是Boot Sector)讀入內(nèi)存地址 0000:7c00 處。4 檢查 (WORD) 0000:7dfe 是否等于 0 xaa55, 若不等于則轉(zhuǎn)去嘗試其他啟動(dòng)介質(zhì), 如果沒有其他啟動(dòng)介質(zhì)則顯示No ROM BASIC 然后死機(jī)。5 跳轉(zhuǎn)到 0000:7c00 處執(zhí)行 MBR 中的程序。6 MBR將自己移動(dòng)到9000:00007 將內(nèi)核模塊從軟盤讀入到1000:00008 將內(nèi)
7、核模塊移動(dòng)到0000:00009 進(jìn)入保護(hù)模式10 讀取COMS信息,設(shè)置有關(guān)表格,然后調(diào)用操作系統(tǒng)初始化程序1-5完全由BIOS完成,6-10由 完成其中的目標(biāo)代碼就是MBR(主引導(dǎo)記錄Master Boot Record)中的程序操作系統(tǒng)引導(dǎo)流程系統(tǒng)引導(dǎo)過(guò)程中內(nèi)核代碼在內(nèi)存中的位置變化 操作系統(tǒng)引導(dǎo)部分代碼的分析n的分析n的分析n的作用n AT&T匯編語(yǔ)言初步操作系統(tǒng)引導(dǎo)部分代碼nboot文件夾中的兩個(gè)匯編語(yǔ)言程序文件的作用n引導(dǎo)裝載器,存放在mbr中的一段程序,負(fù)責(zé)將操作系統(tǒng)加載到內(nèi)存合適的地方,這一部分的代碼運(yùn)行在實(shí)模式中,運(yùn)行的最后將設(shè)置cr0進(jìn)入保護(hù)模式,然后將接著執(zhí)行中的
8、程序n采用intelx86匯編語(yǔ)法編寫,使用8086匯編編譯器as86和連接器ld86產(chǎn)生可執(zhí)行代碼。n除了外,linux均使用gnu的as進(jìn)行編譯,這里使用8086的編譯器的主要原因是當(dāng)時(shí)gnu不支持生成實(shí)模式下的16位的代碼程序,內(nèi)核2.4.x起,這部分代碼才完全使用as來(lái)編寫源代碼分析n閱讀時(shí)應(yīng)注意的主要重點(diǎn)n實(shí)模式的尋址方式n內(nèi)核代碼在內(nèi)存中的位置n使用bios中斷訪問軟盤n如何為進(jìn)入保護(hù)模式進(jìn)行初始化設(shè)置n開始進(jìn)入源代碼世界源代碼分析n的作用n AT&T匯編語(yǔ)言初步的作用n這部分代碼工作在保護(hù)模式下,主要的作用是為開啟分頁(yè)機(jī)制進(jìn)行設(shè)置,開啟分頁(yè)機(jī)制后將控制權(quán)交給程序進(jìn)行進(jìn)一步
9、的初始化工作n采用了AT&T語(yǔ)法的匯編語(yǔ)言語(yǔ)法編寫并使用GNU的as(gas)編譯器進(jìn)行編譯,由于這種語(yǔ)法和intel8086匯編不同,有必要先學(xué)習(xí)一下AT&T的匯編語(yǔ)法的分析n閱讀時(shí)應(yīng)注意的主要重點(diǎn)nIDT,GDT的設(shè)置n如何開啟分頁(yè)機(jī)制n分頁(yè)機(jī)制的尋址方式nHEAD完成后內(nèi)存的布局n開始進(jìn)入源代碼AT&T匯編語(yǔ)言初步nLinux中的匯編代碼n使用兩種匯編器Linux中的匯編代碼Linux中的匯編代碼使用兩種匯編器nas86 (與之配套的ld86鏈接器)ngas(as) ( 與之配套的GNU ld鏈接器 )nLinus僅用as86創(chuàng)建16位的引導(dǎo)扇區(qū)程序n早期的asa
10、sas86n語(yǔ)法類似于MASM,NASM等n在linux中使用as86生成引導(dǎo)區(qū)程序bootGNU asn內(nèi)核中除了外所有匯編語(yǔ)言程序(包括c語(yǔ)言產(chǎn)生的匯編程序)均使用gas編譯。ngas(現(xiàn)在稱為as),匯編器最初是專門用于匯編由gcc產(chǎn)生的中間匯編程序的。因此支持很多c語(yǔ)言特性。(編譯c語(yǔ)言時(shí)gcc編譯器會(huì)首先輸出一個(gè)作為中間結(jié)果的as匯編語(yǔ)言文件,然后調(diào)用as匯編器進(jìn)行編譯)as基本命令格式nas 選項(xiàng) -o objfile srcfile.sn比如單獨(dú)編譯as局部符號(hào)1: incl %eax movl %eax,0 x000000 cmpl %eax,0 x100000 je 1bas
11、匯編命令n.alignn存儲(chǔ)對(duì)齊匯編命令,比如.align 3表示把位置計(jì)數(shù)器值增加后其最右邊0的個(gè)數(shù)為3,就是把位置計(jì)數(shù)器增加到8的倍數(shù)上n.byte .word 分別定義一個(gè)字節(jié),字n.fill repeat,size,valuen該匯編命令會(huì)產(chǎn)生repeat個(gè)大小為size字節(jié)的重復(fù)拷貝,value是填充的值,默認(rèn)為0n.guad 定義多個(gè)用逗號(hào)分開的8字節(jié)大數(shù)as語(yǔ)法- AT&T 匯編格式n1. 在 AT&T 匯編格式中,寄存器名要加上 % 作為前綴;而在 Intel 匯編格式中,寄存器名不需要加前綴。AT&T的匯編語(yǔ)言語(yǔ)法Intel語(yǔ)法 AT&T語(yǔ)法mov eax,8 movl $8,%eaxmov ebx,0ffffh movl $0 xffff,%ebxint 80h int $0 x80在Intel的語(yǔ)法中,立即數(shù)沒有前綴。但是在AT&T中立即數(shù)前冠以“$”AT&T的匯編語(yǔ)言語(yǔ)法nIntel與AT&T操作數(shù)的方向正好相反。在Intel語(yǔ)法中,第一個(gè)操作數(shù)是目的操作數(shù),第二個(gè)操作數(shù)源操作數(shù)。而在AT&T中,第一個(gè)數(shù)是源操作數(shù),第二個(gè)數(shù)是目的操作數(shù)。由此可以看出,AT&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公環(huán)境的網(wǎng)絡(luò)安全培訓(xùn)
- 未來(lái)學(xué)習(xí)模式基于網(wǎng)絡(luò)教育平臺(tái)的思考
- 現(xiàn)代辦公空間中的綠色環(huán)保用品設(shè)計(jì)思考
- 2024年四年級(jí)品德與社會(huì)上冊(cè) 第三單元 生活在這里真好 第11課《我家來(lái)了新鄰居》說(shuō)課稿 粵教版001
- 2024-2025學(xué)年高中物理 第十二章 機(jī)械波 4 波的衍射和干涉說(shuō)課稿4 新人教版選修3-4001
- Module 1 Unit 1 She's a nice teacher(說(shuō)課稿)-2023-2024學(xué)年外研版(三起)英語(yǔ)四年級(jí)下冊(cè)
- 2023九年級(jí)化學(xué)上冊(cè) 第一章 大家都來(lái)學(xué)化學(xué)1.2 化學(xué)實(shí)驗(yàn)室之旅說(shuō)課稿(新版)粵教版001
- 2025農(nóng)村養(yǎng)殖場(chǎng)場(chǎng)地租地合同
- 2025國(guó)際專利技術(shù)許可合同模板版
- Unit 5 Nature and Culture(說(shuō)課稿)2023-2024學(xué)年人教新起點(diǎn)版英語(yǔ)六年級(jí)下冊(cè)
- 電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)-編制說(shuō)明
- 江蘇卷2024年高三3月份模擬考試化學(xué)試題含解析
- (正式版)JTT 1497-2024 公路橋梁塔柱施工平臺(tái)及通道安全技術(shù)要求
- 2024年四川省成都市新都區(qū)中考英語(yǔ)一診試卷(含解析)
- 醫(yī)療器械物價(jià)收費(fèi)申請(qǐng)流程
- 招聘專員轉(zhuǎn)正述職報(bào)告
- “一帶一路”背景下的西安市文化旅游外宣翻譯研究-基于生態(tài)翻譯學(xué)理論
- 2024年江蘇省昆山市六校中考聯(lián)考(一模)化學(xué)試題
- 大學(xué)生文學(xué)常識(shí)知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 國(guó)家電網(wǎng)智能化規(guī)劃總報(bào)告
- 邢臺(tái)市橋西區(qū)2024年事業(yè)單位考試《公共基礎(chǔ)知識(shí)》全真模擬試題含解析
評(píng)論
0/150
提交評(píng)論