Linux Boot Sequence
Boot Sequence翻譯成中文是引導順序、啟動順序,是學習linux的一個重要的知識點,也是一個基礎的知識點,做下筆記。
Linux Boot Sequence:
1、load bios(hardware information)
加載BIOS(硬件信息),BIOS:Basic Input Output System(基本輸入輸出系統),是一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機后自檢程序和系統自啟動程序。詳見百度百科
2、read MBR's config to find out the OS
讀取MBR配置查找需要啟動的操作系統,MBR: Master Boot Record(硬盤的主引導記錄),它由三部分組成:主引導程序、硬盤分區表、硬盤有效標志。
3、load the kernel of the OS
加載操作系統的內核。注意這里有個一個選擇操作系統的步驟。GRUB(the GRand Unified Bootloader),是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,并在計算機啟動時選擇希望運行的操作系統。GRUB可用于選擇操作系統分區上的不同內核,也可用于向這些內核傳遞啟動參數。
4、init process starts...
啟動第一個進程init
5、execute /etc/rc.d/sysinit
init進程啟動后,會執行/etc/rc.d目錄下的sysinit命令
6、start other modules(etc/modules.conf)
加載其他模塊,只有這些模塊加載之后,網絡、光驅等才可以使用。
7、execute the run level scripts
run level: linux內核啟動完之后,后續的啟動是分層次的。可以分任意層次進行啟動,每個層次之間無直接關系,并且各層之間啟動的程序不一樣。
run level層次:
0) - 系統停機狀態 /etc/rc.d/rc0.d/
1) - 單用戶工作狀態 /etc/rc.d/rc1.d/
2) - 多用戶狀態(沒有NFS) /etc/rc.d/rc2.d/
3) - 多用戶狀態(有NFS) /etc/rc.d/rc3.d/
4) - 系統未使用 /etc/rc.d/rc4.d/
5) - 圖形界面 /etc/rc.d/rc5.d/
6) - 系統正常關閉并重新啟動 /etc/rc.d/rc6.d/
8、execute /etc/rc.d/rc.local
運行 /etc/rc.d/rc.local腳本。rc.local腳本主要用于自啟動。
9、 execute /bin/login
執行/bin/login,展示系統登錄界面。
10、shell started...
我們可以把這個步驟簡化分為以下幾個步驟:
1、BIOS Initialization
BIOS初始化
2、Boot Loader
1st Stage - small, resides in MBR or boot sector
2nd Stage - loaded from boot partition
3、Kernel initialization
內核初始化
4、init starts and enter desired run level by executing:
初始化啟動,通過運行以下命令來執行run level
/etc/rc.d/rc.sysinit
/etc/rc.d/rc and /etc/rc.d/rc?.d/
/etc/rc.d/rc.local
X Display Manager if appropriate
基于BIOS、MBR、GRUB、Kernel、Init、run level六個概念,也有人將這個啟動步驟分為這六部。關于Linux的啟動,讀者只需仔細理解研究這六個概念就可以了。
參考:
紅帽RH133官方教程
6 Stages of Linux Boot Process
浙公網安備 33010602011771號