CentOS 6 啟動流程詳細介紹
CentOS 6 啟動流程詳細介紹
1、 POST(Power On Selt Test) 上電自檢:
按下電源鍵首先要檢測硬件設備是否能正常運行,如:cpu、內(nèi)存、硬盤等硬件設備。當然POST不是由硬件去檢測(硬件也不會??!),而是依靠一個軟件來完成的,這個軟件就是BIOS(Basic Input Output System)基本輸入輸出系統(tǒng),它安裝在CMOS芯片上,上電就是給CMOS加電,然后啟動BIOS程序,BIOS會根據(jù)CMOS上記錄的硬件信息去讀取硬件并檢測是否能正常運行,之后初始化硬件設備。
2、 MBR(Master Boot Record)主引導分區(qū):
BIOS初始化硬件后會通過硬件的INT13中斷功能實現(xiàn)讀取MBR,讀取MBR中的Boot Loader,Boot Loader是一個軟件,它具有提供菜單功能,直接加載內(nèi)核信息及相關控制權轉(zhuǎn)換,MBR只有512bytes,其中前446bytes存儲的是Boot Loader,46bytes存儲分區(qū)表信息,2bytes為分區(qū)標志位。446bytes不足以安裝Boot Loader,事實上MBR前446bytes只是安裝了Boot Loader的最小主程序,即stage1,因為Boot Loader 分為stage1、stage1.5、stage2三個階段來執(zhí)行的,stage1.5存放在MBR隨后的扇區(qū)中,主要用于和stage2所在分區(qū)的文件系統(tǒng)交互,stage2加載硬盤分區(qū)/boot目錄下所有文件、配置文件與環(huán)境參數(shù)信息。
3、 Kernel、initrd/initramfs:
/boot目錄下包含vmlinuz,initramfs等內(nèi)核相關的文件,Boot Loader讀取/boot目錄下所有文件、配置文件與環(huán)境參數(shù)信息后,會把內(nèi)核解壓加載到內(nèi)存中,根據(jù)內(nèi)核提供的功能開始檢測,加載各個設備,此次檢測與BIOS自檢不同,執(zhí)行到此,后續(xù)工作都由內(nèi)核來完成(因為Boot Loader已把vmlinuz,initramfs加載到內(nèi)存中),此時內(nèi)核還沒有加載磁盤,因為還沒有磁盤驅(qū)動程序,內(nèi)核通過/boot目錄下的虛擬文件系統(tǒng),也就是initramfs,模擬一個rootfs(根文件系統(tǒng)),加載啟動過程中所需要的核心模塊,加載后釋放rootfs(根文件系統(tǒng)),且以只讀方式掛載真實的根文件系統(tǒng),開始正常的啟動過程。
4、 Init:
用戶空間第一個執(zhí)行程序,在內(nèi)核,硬件及驅(qū)動加載完成后,內(nèi)核會執(zhí)行用戶空間的第一個執(zhí)行程序/sbin/init,init 程序主要功能為準備軟件運行環(huán)境,包括系統(tǒng)主機名稱,網(wǎng)絡配置,文件系統(tǒng)格式等其他服務配置。
Init的配置文件:
CentOS 6:采用Upstart的方式,其特點是守護進程間的通信依賴于D-Bus進行,因此,可基本實現(xiàn)類似并行啟動,配置文件:/etc/inittab、/etc/init/*.conf
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持,如有疑問可以留言或者到本站社區(qū)討論交流,共同進步!
相關文章
expect實現(xiàn)Linux自動登陸遠程機器腳本實例
expect?是由Don Libes基于Tcl(Tool Command Language )語言開發(fā)的,主要應用于自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等交互過程,寫到Shell腳本里以實現(xiàn)一些自動化操作。2022-12-12