linux操作系統(tǒng)啟動過程詳解

linux操作系統(tǒng)啟動過程詳解

ID:8801101

大?。?07.50 KB

頁數(shù):9頁

時間:2018-04-08

linux操作系統(tǒng)啟動過程詳解_第1頁
linux操作系統(tǒng)啟動過程詳解_第2頁
linux操作系統(tǒng)啟動過程詳解_第3頁
linux操作系統(tǒng)啟動過程詳解_第4頁
linux操作系統(tǒng)啟動過程詳解_第5頁
資源描述:

《linux操作系統(tǒng)啟動過程詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫

1、Linux操作系統(tǒng)啟動過程詳解TUNA發(fā)表于2012-09-12分類:IT運維376次閱讀4條評論如果你對Linux操作系統(tǒng)有一定的了解,想對其更深層次的東西做進(jìn)一步探究。這當(dāng)中就包括系統(tǒng)的啟動流程、文件系統(tǒng)的組成結(jié)構(gòu)、基于動態(tài)庫和靜態(tài)庫的程序在執(zhí)行時的異同、協(xié)議棧的架構(gòu)和原理、驅(qū)動程序的機制等等。其中Linux操作系統(tǒng)啟動過程肯定是大家最有興趣了解的,這里在綜合了現(xiàn)有網(wǎng)上大家智慧的基礎(chǔ)上,基于2.6.32的內(nèi)核的CentOS6.0系統(tǒng),對Linux的啟動流程做了些分析,希望對大家有所幫助。OK,我們言歸正傳。對于一臺安裝了Linux系統(tǒng)的主機來說,當(dāng)用戶按下開機按鈕時,一共要經(jīng)歷以下幾個

2、過程,如圖:其中,每個過程都執(zhí)行了自己該做的初始化部分的事情,有些過程又可分為好幾個子過程。接下來,我們就對每個階段做一個詳細(xì)分析和講解。一、BIOS自檢稍有計算機基礎(chǔ)的人都應(yīng)該聽過BIOS(BasicInput/OutputSystem),又稱基本輸入輸出系統(tǒng),可以視為是一個永久地記錄在ROM中的一個軟件,是操作系統(tǒng)輸入輸出管理系統(tǒng)的一部分。早期的BIOS芯片確實是”只讀”的,里面的內(nèi)容是用一種燒錄器寫入的,一旦寫入就不能更改,除非更換芯片?,F(xiàn)在的主機板都使用一種叫FlashEPROM的芯片來存儲系統(tǒng)BIOS,里面的內(nèi)容可通過使用主板廠商提供的擦寫程序擦除后重新寫入,這樣就給用戶升級BI

3、OS提供了極大的方便。BIOS的功能由兩部分組成,分別是POST碼和Runtime服務(wù)。POST階段完成后它將從存儲器中被清除,而Runtime服務(wù)會被一直保留,用于目標(biāo)操作系統(tǒng)的啟動。BIOS兩個階段所做的詳細(xì)工作如下:步驟1:上電自檢POST(Power-onselftest),主要負(fù)責(zé)檢測系統(tǒng)外圍關(guān)鍵設(shè)備(如:CPU、內(nèi)存、顯卡、I/O、鍵盤鼠標(biāo)等)是否正常。例如,最常見的是內(nèi)存松動的情況,BIOS自檢階段會報錯,系統(tǒng)就無法啟動起來;步驟2:步驟1成功后,便會執(zhí)行一段小程序用來枚舉本地設(shè)備并對其初始化。這一步主要是根據(jù)我們在BIOS中設(shè)置的系統(tǒng)啟動順序來搜索用于啟動系統(tǒng)的驅(qū)動器,如硬

4、盤、光盤、U盤、軟盤和網(wǎng)絡(luò)等。我們以硬盤啟動為例,BIOS此時去讀取硬盤驅(qū)動器的第一個扇區(qū)(MBR,512字節(jié)),然后執(zhí)行里面的代碼。實際上這里BIOS并不關(guān)心啟動設(shè)備第一個扇區(qū)中是什么內(nèi)容,它只是負(fù)責(zé)讀取該扇區(qū)內(nèi)容、并執(zhí)行。至此,BIOS的任務(wù)就完成了,此后將系統(tǒng)啟動的控制權(quán)移交到MBR部分的代碼。PS:在個人電腦中,Linux的啟動是從0xFFFF0地址開始的。二、系統(tǒng)引導(dǎo)我們首先來了解一下MBR,它是MasterBootRecord的縮寫。硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導(dǎo)扇區(qū)。它由三個部分組成,主引導(dǎo)程序(Bootloader)、硬盤分區(qū)表DPT(DiskPartitionta

5、ble)和硬盤有效標(biāo)志(55AA),其結(jié)構(gòu)圖如下所示:磁盤分區(qū)表包含以下三部分:1.PartitionID(5:延申82:Swap83:Linux8e:LVMfd:RAID)2.Partition起始磁柱3.Partition的磁柱數(shù)量通常情況下,諸如lilo、grub這些常見的引導(dǎo)程序都直接安裝在MBR中。我們以grub為例來分析這個引導(dǎo)過程。grub引導(dǎo)也分為兩個階段stage1階段和stage2階段(有些較新的grub又定義了stage1.5階段)。1.stage1:stage1是直接被寫入到MBR中去的,這樣機器一啟動檢測完硬件后,就將控制權(quán)交給了GRUB的代碼。也就是上圖所看到的

6、前446個字節(jié)空間中存放的是stage1的代碼。BIOS將stage1載入內(nèi)存中0x7c00處并跳轉(zhuǎn)執(zhí)行。stage1(/stage1/start.S)的任務(wù)非常單純,僅僅是將硬盤0頭0道2扇區(qū)讀入內(nèi)存。而0頭0道2扇區(qū)內(nèi)容是源代碼中的/stage2/start.S,編譯后512字節(jié),它是stage2或者stage1_5的入口。而此時,stage1是沒有識別文件系統(tǒng)的能力的。如果感覺腦子有些暈了,那么下面的過程就直接跳過,去看stage2吧!【外傳】定位硬盤的0頭0道2扇區(qū)的過程:BIOS將stage1載入內(nèi)存0x7c00處并執(zhí)行,然后調(diào)用BIOSINIT13中斷,將硬盤0頭0道2扇區(qū)內(nèi)容

7、載入內(nèi)存0×7000處,然后調(diào)用copy_buffer將其轉(zhuǎn)移到內(nèi)存0×8000處。在定位0頭0道2扇區(qū)時通常有兩種尋址方式:LBA和CHS。如果你是刨根問底兒型的愛好者,那么此時去找谷哥打聽打聽這兩種方式的來龍去脈吧。2.stage2:嚴(yán)格來說這里還應(yīng)該再區(qū)分個stage1.5的,就一并把stage1.5放在這里一起介紹了,免得大家看得心里亂哄哄的。好的,我們繼續(xù)說0頭0到2扇區(qū)的/stage2/start.S文件,當(dāng)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。