開機載入器(bootloader)
開機載入器是介於韌體與作業系統核心之間的小程式——它唯一的任務是找到核心、把它以可執行的狀態放進記憶體,並把控制權交給它。把它想成引座員:韌體解鎖了建築之後,它走到正確的房間,喚醒核心,並把核心指向舞臺。它太小,當不了作業系統,卻又恰好夠大,足以載入作業系統。
具體來說,在 PC 上,韌體(UEFI 或 BIOS)把控制權交給開機載入器(GRUB 是經典的 Linux 例子)。載入器對磁碟與檔案系統懂得夠多,能定位核心映像——它常以壓縮形式儲存以節省空間——於是把那個映像載入記憶體並解壓縮。它也備妥核心乾淨啟動所需之物:核心命令列(開機時的選項,例如哪個磁碟是根檔案系統)、通常還有一個初始記憶體檔案系統(initramfs,內含早期驅動),以及在許多系統上對硬體的描述。然後它跳到核心的進入點,永久地移交控制權。許多載入器還會呈現一個選單,讓你在多個核心或作業系統之間做選擇。
有兩個務實的重點,使開機載入器值得理解。第一,它是惡名昭彰的單一故障點:把它弄壞或設錯,機器就連一個本來完全健康的核心都搆不到——所以「修開機載入器」是常見的救援工作。第二,整個系統的安全可能繫於此處:像 UEFI 安全開機這類功能,讓韌體以密碼學方式驗證載入器、載入器再驗證核心,形成一條信任鏈,使惡意程式無法在作業系統都還沒啟動之前,悄悄換上一個被竄改的核心。
GRUB 選單 -> 所選項目設定核心命令列 'root=/dev/sda2' -> 把 vmlinuz(壓縮)與 initramfs 載入記憶體 -> 解壓縮 -> 跳到核心進入點。控制權再也不回到 GRUB。
開機載入器定位、載入並解壓縮核心,設好它的命令列與 initramfs,然後一去不回地跳進去。
開機載入器既不是韌體,也不是核心——它是橋。混淆三者會導致誤判:通電後立刻黑屏通常是韌體,選單消失或「找不到核心」是載入器,而選單之後的恐慌代表核心本身已啟動但失敗了。