之前已打通 BIOS 端的 A20 與 E820,也實作了文字輸出(INT 10h,0xB8000 → SDL2);硬碟通路具備 INT 13h 與 ATA PIO。到這個節點,先暫緩擴充 BIOS 細節,改以 GRUB 作為前段引導器,使用 ISO 作為唯一啟動媒介,先在 QEMU 裡把鏈條跑通,再導入我們的系統,藉此降低整體實作複雜度。
首先我們會把媒介讀檔與交棒後的邏輯分離,前者交給 GRUB,後者由我們的系統處理。如此一來,驗證只聚焦在兩點,映像檔是否正確、GRUB 設定是否能準確交棒。
同時我們會以 QEMU 來做驗證。QEMU 提供穩定、可重現的 BIOS 啟動路徑,韌體行為與裝置模型都是固定,因此我們可只專注在檢查:
啟動媒介選用 ISO。GRUB 以自己的檔案系統與驅動完成讀檔,先不依賴尚未實作的 INT 13h 擴充(EDD/LBA48)。也就是把「從媒介把檔案搬進記憶體」這個容易出錯的環節外包,避免同時在 I/O 與高階啟動邏輯兩邊炸裂。若導入失敗,可在 GRUB 命令列就地檢查路徑與載入順序;若成功,代表後段程式邏輯可疑值,直接在 HV 直接跑同一張 ISO 即可。
ISO 的佈局刻意保持簡單,並對齊 GRUB 的尋徑習慣: