一、 POST(Power On Selt Test) 上電自檢:網絡
按下電源鍵首先要檢測硬件設備是否能正常運行,如:cpu、內存、硬盤等硬件設備。固然POST不是由硬件去檢測(硬件也不會啊!),而是依靠一個軟件來完成的,這個軟件就是BIOS(Basic Input Output System)基本輸入輸出系統,它安裝在CMOS芯片上,上電就是給CMOS加電,而後啓動BIOS程序,BIOS會根據CMOS上記錄的硬件信息去讀取硬件並檢測是否能正常運行,以後初始化硬件設備。ide
二、 MBR(Master Boot Record)主引導分區:進程
BIOS初始化硬件後會經過硬件的INT13中斷功能實現讀取MBR,讀取MBR中的Boot Loader,Boot Loader是一個軟件,它具備提供菜單功能,直接加載內核信息及相關控制權轉換,MBR只有512bytes,其中前446bytes存儲的是Boot Loader,46bytes存儲分區表信息,2bytes爲分區標誌位。446bytes不足以安裝Boot Loader,事實上MBR前446bytes只是安裝了Boot Loader的最小主程序,即stage1,由於Boot Loader 分爲stage一、stage1.五、stage2三個階段來執行的,stage1.5存放在MBR隨後的扇區中,主要用於和stage2所在分區的文件系統交互,stage2加載硬盤分區/boot目錄下全部文件、配置文件與環境參數信息。內存
三、 Kernel、initrd/initramfs:it
/boot目錄下包含vmlinuz,initramfs等內核相關的文件,Boot Loader讀取/boot目錄下全部文件、配置文件與環境參數信息後,會把內核解壓加載到內存中,根據內核提供的功能開始檢測,加載各個設備,這次檢測與BIOS自檢不一樣,執行到此,後續工做都由內核來完成(由於Boot Loader已把vmlinuz,initramfs加載到內存中),此時內核尚未加載磁盤,由於尚未磁盤驅動程序,內核經過/boot目錄下的虛擬文件系統,也就是initramfs,模擬一個rootfs(根文件系統),加載啓動過程當中所須要的核心模塊,加載後釋放rootfs(根文件系統),且以只讀方式掛載真實的根文件系統,開始正常的啓動過程。ast
四、 Init:class
用戶空間第一個執行程序,在內核,硬件及驅動加載完成後,內核會執行用戶空間的第一個執行程序/sbin/init,init 程序主要功能爲準備軟件運行環境,包括系統主機名稱,網絡配置,文件系統格式等其餘服務配置。軟件
Init的配置文件:配置
CentOS 6:採用Upstart的方式,其特色是守護進程間的通訊依賴於D-Bus進行,所以,可基本實現相似並行啓動,配置文件:/etc/inittab、/etc/init/*.conf硬件