挑戰將以《嵌入式虛擬化技術與應用:ACRN 開源專案實踐》為主要參考書目,嘗試在 30 天內於 x86 平台探索並實作簡易 Hypervisor。重點將放在 VMX 啟動流程、Stage-2 page table、IRQ 處理與 vCPU 切換等核心機制,並透過 QEMU/KVM 進行驗證。
昨天我們談到顯示設備在虛擬化環境中的運作邏輯,也說明了主機端能觀察畫面變化的策略。一種是透過 EPT 寫保護 或 MMIO 映射 強制每次寫入都觸發 VM-ex...
用 SDL2 把 BIOS 文字模式跑起來 在前面的實作中,我們雖然已經完成了螢幕設備的 API 介面與記憶體寫入行為的監控,但並沒有模擬一個真正的畫面,有的也...
這幾天我們處理了文字模式畫面與硬碟(INT 13h)讀寫。若要讓 loader 能把資料搬進記憶體、再順利切換到保護模式甚至長模式(IA-32e),我們必須提供...
從 BIOS 的角度看 E820 在 bootloader 啟動之前,BIOS 已經完成整個平台的初始化。雖然 CPU 還在實模式,沒有分頁,也沒有任何軟體邏輯...
之前已打通 BIOS 端的 A20 與 E820,也實作了文字輸出(INT 10h,0xB8000 → SDL2);硬碟通路具備 INT 13h 與 ATA P...
前幾天,我已經完成 BIOS 初始化、磁碟 I/O 模擬等。今天的目標,是讓虛擬機真正載入 GRUB,讓開機流程第一次跨過韌體這一層,進入可互動的 bootlo...
今日檢討 今天應該是沒啥新進度了。花了比較多時間在 debug。先上圖這是目前引入 GRUB 的結果。目前還有一些 INT 中斷服務程式尚未實作,導致 GRUB...
今日進度 今天大致把 BIOS 到 GRUB 的路徑跑通了。從打印 log 可以看到目前的 INT 13h 有正確執行,我們實現的 ATA PIO 可以正常工作...
檢討 這段時間期時也沒啥好寫的,每天做的事情就是查 BIOS 服務 -> 實作 -> 測試 -> 爆掉 -> 再找哪裡實現錯誤。我在想目...
雖說是結語,我們的 HV 其實只走到一半。一路走來,我把大量時間花在實作硬體抽象層,讓 Guest 的行為對齊真機的中斷處理、I/O 觸發與裝置模擬。這條路過於...