Linux 0.11 是 Linus Torvalds 早期核心版本,其啟動流程清晰展現了 x86 架構從實模式進入保護模式的關鍵步驟。本文依據原始碼路徑(boot/bootsect.s、boot/setup.s、boot/head.s)詳細解析各階段動作。
0xFFFF0 (BIOS ROM) 開始執行,執行 POST、初始化中斷向量表 (IVT, 物理位址 0x0000)0x7C00 (31KB)0x7C00 執行 boot/bootsect.s0x90000 (576KB)boot/setup.s) 至 0x90200system 模組) 至 0x10000 (64KB)setup.s 繼續執行system 模組移動至物理記憶體起始位置 (0x00000)0x90000 附近)head.s (位於 system 模組最前端)main.c (C 語言核心主入口),啟動程序管理、記憶體管理、檔案系統等子系統0x000000 - 0x0FFFFF : 實模式區 / IVT / BIOS Data Area
0x100000 - ... : 核心映像
head.s : 0x100000 (核心進入點)
kernel code/data
page tables
task[0] (init_task)
Linux 0.11 的啟動流程雖簡單,但完整展示了 x86 架構核心啟動的核心邏輯:BIOS → MBR → Bootloader → 硬體初始化 → 保護模式 → 分頁 → C 核心。現代核心 (GRUB2 + initramfs + systemd) 雖複雜許多,但骨架仍沿襲此架構。