Boot Sequence翻譯成中文是引導順序、啟動順序,是學習linux的一個重要的知識點,也是一個基礎的知識點,做下筆記。
Linux Boot Sequence:
1、load bios(hardware information)
載入BIOS(硬體資訊),BIOS:Basic Input Output System(基本輸出入系統 (BIOS)),是一組固化到電腦內主板上一個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的啟動,讀者只需仔細理解研究這六個概念就可以了。
參考:
尚學堂科技輕鬆愉快LINUX視頻教程
紅帽RH133官方教程
6 Stages of Linux Boot Process