資源描述:
《linux系統(tǒng)啟動過程分析》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Linux系統(tǒng)啟動過程分析操作系統(tǒng)的啟動過程,實際上是控制權移交的過程。Linux系統(tǒng)啟動包含四個主要的階段:BIOSinitialization,bootloader,kernelinitialization,andinitstartup.見下圖:階段一、BIOSinitialization,主要功能如下:1.Peripheralsdetected2.Bootdeviceselected3.Firstsectorofbootdevicereadandexecuted系統(tǒng)上電開機后,主板BIOS(Basic
2、Input/OutputSystem)運行POST(Poweronselftest)代碼,檢測系統(tǒng)外圍關鍵設備(如:CPU、內存、顯卡、I/O、鍵盤鼠標等)。硬件配置信息及一些用戶配置參數(shù)存儲在主板的CMOS(ComplementaryMetalOxideSemiconductor)上(一般64字節(jié)),實際上就是主板上一塊可讀寫的RAM芯片,由主板上的電池供電,系統(tǒng)掉電后,信息不會丟失。執(zhí)行POST代碼對系統(tǒng)外圍關鍵設備檢測通過后,系統(tǒng)啟動自檢程序,根據(jù)我們在BIOS中設置的啟動順序搜索啟動驅動器(比如的硬
3、盤、光驅、網絡服務器等)。選擇合適的啟動器,比如通常情況下的硬盤設備,BIOS會讀取硬盤設備的第一個扇區(qū)(MBR,512字節(jié)),并執(zhí)行其中的代碼。實際上這里BIOS并不關心啟動設備第一個扇區(qū)中是什么內容,它只是負責讀取該扇區(qū)內容、并執(zhí)行,BIOS的任務就完成了。此后將系統(tǒng)啟動的控制權移交到MBR部分的代碼。注:在我們的現(xiàn)行系統(tǒng)中,大多關鍵設備都是連在主板上的。因此主板BIOS提供了一個操作系統(tǒng)(軟件)和系統(tǒng)外圍關鍵設備(硬件)最底級別的接口,在這個階段,檢測系統(tǒng)外圍關鍵設備是否“準備好”,以供操作系統(tǒng)使用。
4、階段二、BootLoader關于BootLoader,簡單的說就是啟動操作系統(tǒng)的程序,如grub,lilo,也可以將bootloader本身看成一個小系統(tǒng)。TheBIOSinvokesthebootloaderinoneoftwoways:1.Itpasscontroltoaninitialprogramloader(IPL)installedwithinadriver'sMasterBootRecord(MBR)2.Itpassescontroltoanotherbootloader,whichpasse
5、scontroltoanIPLinstalledwithinapartition'sbootsector.Ineithercase,theIPLmustexistwithinaverysmallspace,nolargerthan446bytes.Therefore,theIPLforGRUBismerelyafirststage,whosesoletaskistolocateandloadasecondstagebootloader,whichdoesmostoftheworktobootthesyste
6、m.Therearetwopossiblewaystoconfigurebootloaders:Primarybootloader:InstallthefirststageofyourLinuxbootloaderintotheMBR.Thebootloadermustbeconfiguretopasscontroltoanyotherdesiredoperatingsystems.Secondarybootloader:InstallthefirststageofyourLinuxbootloaderin
7、tothebootsectorofsomepartition.AnotherbootloadermustbeinstalledintotheMBR,andconfiguredtopasscontroltoyourLinuxbootloader.假設BootLoader為grub(grub-0.97),其引導系統(tǒng)的過程如下:grub分為stage1(stage1_5)?stage2兩個階段。stage1可以看成是initialprogramloaderI(IPL),而stage2則實現(xiàn)了grub的主要功能,包
8、括對特定文件系統(tǒng)的支持(如ext2,ext3,reiserfs等),grub自己的shell,以及內部程序(如:kernrl,initrd,root)等。stage1:MBR(512字節(jié),0頭0道1扇區(qū)),前446字節(jié)存放的是stage1,后面存放硬盤分區(qū)表信息,BIOS將stag1載入內存中0x7c00處并跳轉執(zhí)行。stage1(/stage1/stage.S)的任務非常但存,僅僅是將硬盤0頭0道2扇區(qū)讀入內存