《Linux體系與編程-基于Linux 0.01版本》課件第15章_第1頁
《Linux體系與編程-基于Linux 0.01版本》課件第15章_第2頁
《Linux體系與編程-基于Linux 0.01版本》課件第15章_第3頁
《Linux體系與編程-基于Linux 0.01版本》課件第15章_第4頁
《Linux體系與編程-基于Linux 0.01版本》課件第15章_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

15.1操作系統(tǒng)引導(dǎo)基本知識15.1.1系統(tǒng)引導(dǎo)設(shè)備操作系統(tǒng)是從引導(dǎo)設(shè)備中引導(dǎo)的。一臺計(jì)算機(jī)要引導(dǎo),必須首先在BIOS中指定引導(dǎo)設(shè)備,常見的引導(dǎo)設(shè)備是磁盤,包括硬盤、光盤。磁盤(軟盤和硬盤)通常需要在格式化后才能使用。格式化的作用就是在磁盤上劃分不同的區(qū)域來存儲(chǔ)不同的數(shù)據(jù)。通常,磁盤經(jīng)過格式化后主要包括的區(qū)域有:主引導(dǎo)記錄區(qū)(只有硬盤有)、引導(dǎo)記錄區(qū)、文件分配表(FAT)、目錄區(qū)和數(shù)據(jù)區(qū)。15.1操作系統(tǒng)引導(dǎo)基本知識15.1.2啟動(dòng)過程簡介1.硬盤啟動(dòng)步驟(1)機(jī)器加電。(2)BIOS加電自檢。(3)計(jì)算機(jī)將硬盤0柱面0磁頭1扇區(qū)(主引導(dǎo)區(qū)MBR)中的512個(gè)字節(jié)讀入內(nèi)存0000:7C00處并跳到0000:7C00處執(zhí)行(4)檢查(WORD)0000:7dfe是否等于0xAA55(5)跳轉(zhuǎn)到0000:7c00處執(zhí)行MBR中的程序。(6)MBR首先將自己復(fù)制到0000:0600處,然后繼續(xù)執(zhí)行。(7)MBR在主分區(qū)表中搜索標(biāo)志為活動(dòng)的分區(qū),如果發(fā)現(xiàn)沒有活動(dòng)分區(qū)或有不止一個(gè)活動(dòng)分區(qū),則停止。(8)將活動(dòng)分區(qū)的第一個(gè)扇區(qū)讀入內(nèi)存地址0000:7c00處。(9)檢查(WORD)0000:7dfe是否等于0xAA55,若不等于則顯示“MissingOperatingSystem”然后停止,或嘗試軟盤啟動(dòng)。(10)跳轉(zhuǎn)到0000:7c00處繼續(xù)執(zhí)行特定系統(tǒng)的啟動(dòng)程序。(11)啟動(dòng)系統(tǒng)。15.1操作系統(tǒng)引導(dǎo)基本知識2.實(shí)例:Reboot程序在前面介紹的硬盤啟動(dòng)過程的第(2)步中,BIOS的起始地址是0FFFF:0000。在程序設(shè)計(jì)中,如果需要執(zhí)行熱啟動(dòng)計(jì)算機(jī),可以通過將程序的執(zhí)行跳轉(zhuǎn)到0FFFF:0000來實(shí)現(xiàn)。15.1操作系統(tǒng)引導(dǎo)基本知識15.1.3硬盤主引導(dǎo)扇區(qū)簡介主引導(dǎo)扇區(qū)是硬盤的第一個(gè)扇區(qū),它由主引導(dǎo)記錄(MBR,MasterBootRecord)、硬盤分區(qū)表(DPT,DiskPartitionTable)和引導(dǎo)扇區(qū)標(biāo)識(BootRecordID)3部分組成。硬盤的一個(gè)扇區(qū)是512字節(jié)。主引導(dǎo)記錄占用主引導(dǎo)扇區(qū)的前446個(gè)字節(jié)(字節(jié)編號是0到0x1bd)存放系統(tǒng)主引導(dǎo)程序(它負(fù)責(zé)從活動(dòng)分區(qū)中裝載并運(yùn)行操作系統(tǒng)引導(dǎo)程序)。硬盤分區(qū)表占用64個(gè)字節(jié)(字節(jié)編號是0x1be到0x1fd),記錄了磁盤的基本分區(qū)信息。硬盤分區(qū)表分為4個(gè)分區(qū)項(xiàng),每項(xiàng)16字節(jié),分別記錄了每個(gè)主分區(qū)的信息(一個(gè)硬盤因此最多可以有4個(gè)主分區(qū))。引導(dǎo)扇區(qū)標(biāo)識占用兩個(gè)字節(jié)(字節(jié)序號是從0x1fe到0x1ff)。對于合法引導(dǎo)區(qū),這個(gè)標(biāo)識為0xaa55。這通常是計(jì)算機(jī)判斷引導(dǎo)扇區(qū)是否合法的標(biāo)志。15.2Linux0.01引導(dǎo)代碼分析15.2.1boot.s:BIOS引導(dǎo)代碼15.2.2Head.s:Linux的32位引導(dǎo)代碼15.3實(shí)例:使用nasm生成引導(dǎo)代碼

15.3.1引導(dǎo)代碼基礎(chǔ)引導(dǎo)代碼必須遵循如下的規(guī)則:BIOS會(huì)把引導(dǎo)程序裝載到固定地址07C00h。因此,引導(dǎo)程序的段地址和偏移地址是固定的。引導(dǎo)代碼必須編譯成為plainbinaryfile類型。plainbinaryfile的尺寸必須是512字節(jié)(512字節(jié)是一個(gè)扇區(qū)的大小)。文件必須以0xAA55h標(biāo)志結(jié)束。15.3實(shí)例:使用nasm生成引導(dǎo)代碼

15.3.2最簡單的引導(dǎo)程序;hang.asm;Aminimalbootstraphang: ;Hang!jmp hangtimes 510-($-$$) db0 ;Fillthefilewith0'sdw 0AA55h ;End

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論