昨天我們用 QEMU 成功跑起自己的 Kernel,但 Kernel 怎麼從「完全沒電」的狀態,到可以開始執行我們寫的程式呢?
今天我們就來揭開 Linux Booting(開機) 的流程,理解它如何一步步掌控整個系統
Booting 就是「開機流程」,負責把電腦從關機狀態喚醒,然後載入作業系統。
可以把它想像成:
Linux 的 Booting 可以分成幾個階段:
常見 Bootloader:GRUB
功能:
在 QEMU 測試時,如果直接用 -kernel,其實 Bootloader 步驟被省略,由 QEMU 幫我們跳過
Kernel 開始執行 start_kernel() 函數
初始化:
這時候,Kernel 已經可以管理硬體了
qemu-system-x86_64 \
-kernel arch/x86/boot/bzImage \
-initrd initramfs.cpio.gz \
-append "console=ttyS0" \
-nographic
如果成功,終端機會顯示 Kernel log,最後看到 /init 啟動訊息。
Booting 是 Linux 系統從零開始啟動的完整流程
核心階段:BIOS/UEFI → Bootloader → Kernel Init → Root FS → User Space
在 QEMU 測試時,我們可以快速觀察 Kernel 的啟動過程,理解每個階段的作用
理解 Booting,對 Kernel 開發、模組測試、資安研究都非常重要