iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
自我挑戰組

30 天 hypervisor 入門 系列

挑戰將以《嵌入式虛擬化技術與應用:ACRN 開源專案實踐》為主要參考書目,嘗試在 30 天內於 x86 平台探索並實作簡易 Hypervisor。重點將放在 VMX 啟動流程、Stage-2 page table、IRQ 處理與 vCPU 切換等核心機制,並透過 QEMU/KVM 進行驗證。

參賽天數 23 天 | 共 23 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 01 前言

虛擬化一直是我覺得有趣的概念。過去我對它的理解,多停留在「資源不足時的權衡方案」——例如 CPU 無法同時分給多個程式,就有了 CPU 虛擬化;同一段記憶體無法...

2025-09-15 ‧ 由 borane15532 分享
DAY 2

Day 02 Hypervisor 簡介

Hypervisor 的角色 Hypervisor 是介於硬體與作業系統間的一層抽象。它的工作是: 接手硬體資源(CPU、記憶體、I/O、中斷)。 將「虛擬的...

2025-09-16 ‧ 由 borane15532 分享
DAY 3

Day 03 從 Intel 手冊看 VM-Exit

從 Intel 手冊看 VM-Exit VM-Exit 可以是一種邊界事件,當 Guest 嘗試執行超出自身權限的操作時,處理器會立即介入,並把控制權交回給 H...

2025-09-17 ‧ 由 borane15532 分享
DAY 4

Day 04 讓 Guest 輸出 HELLO

昨天翻了 Intel 手冊,知道哪些指令可觸發 VM-exit。今天來做個做小實驗,觀察 Guest 執行到敏感指令時,KVM 如何把控制權交回 host。KV...

2025-09-18 ‧ 由 borane15532 分享
DAY 5

Day 05 設計簡易的 VM-exit 處理表

在虛擬化系統裡,Guest 遇到無法直接執行的指令時,處理器會觸發 VM-exit,將控制權交還給 Hypervisor。這意味著我們必須在 Host 端準備一...

2025-09-19 ‧ 由 borane15532 分享
DAY 6

Day 06 中斷事件

中斷 在真實的硬體,外部的中段會由中斷控制如 (PIC/APIC)觸發,而 CPU 接受到中斷請求後將會根據暫存器的配置,查找該引腳對應的中斷向量號,並調轉到目...

2025-09-20 ‧ 由 borane15532 分享
DAY 7

Day07 Real Mode 中斷與 IRQ 測試

Real mode 中斷 在實模式(Real Mode)下,中斷的處理是透過 中斷向量表(IVT, Interrupt Vector Table)來完成的。...

2025-09-21 ‧ 由 borane15532 分享
DAY 8

Day08 eventfd

eventfd 在先前的設計中,我們透過 KVM 建立了虛擬的中斷控制器(PIC/IOAPIC),讓 Guest 能夠接收外部中斷。這個做法可以模擬傳統硬體的行...

2025-09-22 ‧ 由 borane15532 分享
DAY 9

Day 09 模擬 io 設備

I/O 模組設計 在之前的實作裡,我們讓 Guest 可執行程式碼,並透過 VM-exit 把發生的事件傳回 Host。不過對 Guest 來說,單純能跑程式是...

2025-09-23 ‧ 由 borane15532 分享
DAY 10

Day 10 實作 Host I/O

Guest 想要與外界互動,最終都得透過 Host 以捕捉事件並轉換成可理解的中斷。為此我們需要實作 Host I/O 模組,用以負責「事件監控」與「事件分派」...

2025-09-24 ‧ 由 borane15532 分享