Linux系統(tǒng)啟動(dòng)過(guò)程
Linux啟動(dòng)時(shí)會(huì)顯示許多的啟動(dòng)信息,其過(guò)程可分為4個(gè)階段:
1. BIOS/UEFI 初始化
當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),首先會(huì)執(zhí)行 BIOS(基本輸入輸出系統(tǒng))或 UEFI(統(tǒng)一可擴(kuò)展固件接口)的初始化。這一階段主要負(fù)責(zé)硬件的自檢(POST),并識(shí)別可引導(dǎo)設(shè)備。BIOS/UEFI 會(huì)根據(jù)設(shè)置的啟動(dòng)順序查找可引導(dǎo)的設(shè)備,如硬盤、USB 驅(qū)動(dòng)器等。
2. 引導(dǎo)加載程序(Bootloader)
一旦 BIOS/UEFI 找到可引導(dǎo)設(shè)備,它將加載引導(dǎo)加載程序。對(duì)于 CentOS 8,通常使用的是 GRUB2(GRand Unified Bootloader 2)。GRUB2 會(huì)讀取其配置文件(通常位于 /boot/grub2/grub.cfg),并提供一個(gè)菜單供用戶選擇要啟動(dòng)的操作系統(tǒng)或內(nèi)核版本。
3. 內(nèi)核加載
在用戶選擇了內(nèi)核后,GRUB2 會(huì)將內(nèi)核映像(通常是 vmlinuz 文件)和初始 RAM 磁盤(initramfs)加載到內(nèi)存中。內(nèi)核負(fù)責(zé)初始化系統(tǒng)的硬件和文件系統(tǒng),并開始啟動(dòng)用戶空間。
4. 初始化進(jìn)程
內(nèi)核啟動(dòng)后,會(huì)運(yùn)行第一個(gè)用戶空間進(jìn)程,通常是 systemd。systemd 是 CentOS 8 中的初始化系統(tǒng)和服務(wù)管理器,負(fù)責(zé)啟動(dòng)和管理系統(tǒng)服務(wù)、掛載文件系統(tǒng)以及處理用戶登錄等任務(wù)。
Linux系統(tǒng)有7個(gè)運(yùn)行級(jí)別(runlevel):
- 運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)
- 運(yùn)行級(jí)別1:?jiǎn)斡脩艄ぷ鳡顟B(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸
- 運(yùn)行級(jí)別2:多用戶狀態(tài)(沒有NFS)
- 運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺(tái)命令行模式
- 運(yùn)行級(jí)別4:系統(tǒng)未使用,保留
- 運(yùn)行級(jí)別5:X11控制臺(tái),登陸后進(jìn)入圖形GUI模式
- 運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)