面試官:你來(lái)說(shuō)說(shuō) Linux 是如何啟動(dòng)的?
Linux 是怎么啟動(dòng)的?
幾乎每個(gè)軟件工程師都用過(guò) Linux,但并不是每個(gè)人都知道它的啟動(dòng)過(guò)程。讓我們深入了解一下。
下圖給我們展示了具體步驟。
第 1 步
當(dāng)我們打開(kāi)電源時(shí),BIOS(基本輸入/輸出系統(tǒng),Basic Input/Output System)或 UEFI(統(tǒng)一可擴(kuò)展固件接口,Unified Extensible Firmware Interface)固件會(huì)從非易失性內(nèi)存中加載,并執(zhí)行 POST(開(kāi)機(jī)自檢,Power On Self Test)。
第 2 步
BIOS/UEFI 檢測(cè)連接到系統(tǒng)的設(shè)備,包括 CPU、內(nèi)存和存儲(chǔ)設(shè)備。
第 3 步
選擇一個(gè)啟動(dòng)設(shè)備來(lái)啟動(dòng)操作系統(tǒng)??梢允怯脖P(pán)、網(wǎng)絡(luò)服務(wù)器或 CD ROM。
第 4 步
BIOS/UEFI 運(yùn)行引導(dǎo)加載器 (GRUB),它提供了一個(gè)選擇操作系統(tǒng)或內(nèi)核功能的菜單。
第 5 步
內(nèi)核準(zhǔn)備就緒后,我們現(xiàn)在切換到用戶空間。內(nèi)核啟動(dòng) systemd 作為第一個(gè)用戶空間進(jìn)程,負(fù)責(zé)管理進(jìn)程和服務(wù)、探測(cè)所有剩余硬件、掛載文件系統(tǒng)并運(yùn)行桌面環(huán)境。
第 6 步
系統(tǒng)啟動(dòng)時(shí),systemd 默認(rèn)激活 default.target 單元。同時(shí)還會(huì)執(zhí)行其他分析單元。
第 7 步
系統(tǒng)運(yùn)行一組啟動(dòng)腳本并配置環(huán)境。
第 8 步
用戶將看到一個(gè)登錄窗口。系統(tǒng)現(xiàn)已準(zhǔn)備就緒。