挑戰將以《嵌入式虛擬化技術與應用:ACRN 開源專案實踐》為主要參考書目,嘗試在 30 天內於 x86 平台探索並實作簡易 Hypervisor。重點將放在 VMX 啟動流程、Stage-2 page table、IRQ 處理與 vCPU 切換等核心機制,並透過 QEMU/KVM 進行驗證。
虛擬化一直是我覺得有趣的概念。過去我對它的理解,多停留在「資源不足時的權衡方案」——例如 CPU 無法同時分給多個程式,就有了 CPU 虛擬化;同一段記憶體無法...
Hypervisor 的角色 Hypervisor 是介於硬體與作業系統間的一層抽象。它的工作是: 接手硬體資源(CPU、記憶體、I/O、中斷)。 將「虛擬的...
從 Intel 手冊看 VM-Exit VM-Exit 可以是一種邊界事件,當 Guest 嘗試執行超出自身權限的操作時,處理器會立即介入,並把控制權交回給 H...
昨天翻了 Intel 手冊,知道哪些指令可觸發 VM-exit。今天來做個做小實驗,觀察 Guest 執行到敏感指令時,KVM 如何把控制權交回 host。KV...
在虛擬化系統裡,Guest 遇到無法直接執行的指令時,處理器會觸發 VM-exit,將控制權交還給 Hypervisor。這意味著我們必須在 Host 端準備一...
中斷 在真實的硬體,外部的中段會由中斷控制如 (PIC/APIC)觸發,而 CPU 接受到中斷請求後將會根據暫存器的配置,查找該引腳對應的中斷向量號,並調轉到目...
Real mode 中斷 在實模式(Real Mode)下,中斷的處理是透過 中斷向量表(IVT, Interrupt Vector Table)來完成的。...
eventfd 在先前的設計中,我們透過 KVM 建立了虛擬的中斷控制器(PIC/IOAPIC),讓 Guest 能夠接收外部中斷。這個做法可以模擬傳統硬體的行...
I/O 模組設計 在之前的實作裡,我們讓 Guest 可執行程式碼,並透過 VM-exit 把發生的事件傳回 Host。不過對 Guest 來說,單純能跑程式是...
Guest 想要與外界互動,最終都得透過 Host 以捕捉事件並轉換成可理解的中斷。為此我們需要實作 Host I/O 模組,用以負責「事件監控」與「事件分派」...