预购商品
书目分类
特别推荐
《QEMU/KVM源碼解析與應用》從源碼層面對當今重要的虛擬化方案QEMU與KVM的實現進行了詳細分析。涉及的源碼包括QEMU程式的基本組成與重要元件、主機板與固件虛擬化、CPU虛擬化、記憶體虛擬化、中斷虛擬化、設備虛擬化等。本書的內容以QEMU和KVM代碼分析為主,也涉及其他與虛擬化密切相關的代碼,例如SeaBIOS和Linux內核中的virtio與VFIO的驅動代碼。對虛擬化安全、容器與安全容器技術、虛擬化技術的下一步發展也做了簡單介紹。 《QEMU/KVM源碼解析與應用》可供從事雲計算,特別是從事IaaS層相關工作的人員閱讀和使用,也適合對底層電腦系統、虛擬機器技術、作業系統技術感興趣的讀者學習和使用。虛擬化技術如今已經廣泛應用于安全領域,本書還可供安全研究人員參考和使用。
第1章 QEMU與KVM概述1 1.1 虛擬化簡介1 1.1.1 虛擬化思想1 1.1.2 虛擬機器簡介2 1.1.3 系統虛擬化的歷史3 1.2 QEMU與KVM架構介紹4 1.2.1 QEMU與KVM歷史4 1.2.2 QEMU與KVM架構5 1.3 KVM API使用實例8 第2章 QEMU基本組件12 2.1 QEMU事件迴圈機制12 2.1.1 glib事件迴圈機制12 2.1.2 QEMU中的事件迴圈機制13 2.1.3 QEMU自訂事件源17 2.1.4 QEMU事件處理過程21 2.1.5 QEMU主迴圈監聽的fd解析23 2.2 QEMU執行緒模型25 2.2.1 QEMU執行緒模型簡介25 2.2.2 QEMU執行緒介紹26 2.3 QEMU參數解析27 2.4 QOM介紹32 2.4.1 類型的註冊33 2.4.2 類型的初始化36 2.4.3 類型的層次結構39 2.4.4 物件的構造與初始化42 2.4.5 屬性44 2.5 hmp與qmp介紹52 2.5.1 hmp與qmp52 2.5.2 qmp的使用53 2.5.3 qmp源碼分析54 2.5.4 qmp命令添加56 第3章 主機板與固件模擬58 3.1 Intel 440FX主機板簡介58 3.1.1 i440fx與piix3介紹58 3.1.2 QEMU模擬主機板架構59 3.2 QEMU的主機板模擬與初始化61 3.2.1 虛擬機器初始化61 3.2.2 i440fx初始化64 3.2.3 中斷和其他設備的初始化66 3.3 fw_cfg設備介紹67 3.3.1 fw_cfg設備的初始化67 3.3.2 向fw_cfg設備添加資料69 3.3.3 添加使用者自訂資料74 3.3.4 數據的讀取75 3.4 SeaBIOS分析79 3.4.1 SeaBIOS簡介79 3.4.2 QEMU載入SeaBIOS80 3.4.3 SeaBIOS源碼結構84 3.4.4 SeaBIOS的編譯與調試91 第4章 CPU虛擬化93 4.1 CPU虛擬化介紹93 4.1.1 CPU虛擬化簡介93 4.1.2 VMX架構簡介93 4.1.3 VMCS介紹94 4.2 KVM模組初始化介紹97 4.2.1 KVM源碼組織97 4.2.2 KVM模組初始化98 4.3 虛擬機器的創建105 4.3.1 QEMU側虛擬機器的創建105 4.3.2 KVM側虛擬機器的創建107 4.4 QEMU CPU的創建110 4.4.1 CPU模型定義110 4.4.2 CPU對象的初始化113 4.4.3 CPU的創建120 4.5 KVM CPU的創建122 4.5.1 KVM創建VCPU流程122 4.5.2 QEMU與KVM之間的共用數據126 4.5.3 VCPU CPUID構造128 4.6 VCPU的運行133 4.7 VCPU的調度144 第5章 記憶體虛擬化149 5.1 記憶體虛擬化簡介149 5.2 QEMU記憶體初始化150 5.2.1 基本結構150 5.2.2 QEMU虛擬機器記憶體初始化154 5.2.3 分配虛擬機器RAM過程157 5.3 記憶體佈局的提交161 5.3.1 記憶體*改通知161 5.3.2 虛擬機器記憶體平坦化過程164 5.3.3 向KVM註冊記憶體169 5.4 記憶體的分派174 5.4.1 記憶體分派表的構建174 5.4.2 頁表簡化182 5.4.3 地址分派184 5.5 KVM記憶體虛擬化186 5.5.1 虛擬機器MMU初始化186 5.5.2 虛擬機器物理位址的設置189 5.5.3 EPT頁表的構建193 5.6 MMIO機制200 5.6.1 虛擬裝置MMIO實現原理200 5.6.2 coalesced MMIO203 5.7 虛擬機器髒頁跟蹤205 第6章 中斷虛擬化210 6.1 中斷機制簡介210 6.1.1 中斷分發方式210 6.1.2 中斷線與中斷向量211 6.2 中斷模擬211 6.2.1 虛擬化環境下的中斷注入212 6.2.2 PIC中斷模擬214 6.2.3 I/O APIC中斷模擬225 6.2.4 MSI中斷模擬234 6.3 APIC虛擬化236 6.3.1 APICv簡介236 6.3.2 APICv源碼分析238 第7章 設備虛擬化245 7.1 設備虛擬化簡介245 7.1.1 匯流排資料類型245 7.1.2 匯流排的創建248 7.1.3 設備資料類型249 7.1.4 設備的創建251 7.1.5 設備的樹形結構252 7.2 PCI設備類比258 7.2.1 PCI設備簡介258 7.2.2 PCI設備的類比260 7.2.3 PCI設備中斷類比270 7.3 設備類比後端274 7.3.1 網卡類比介紹275 7.3.2 網卡參數解析277 7.3.3 前端網卡設備的創建286 7.3.4 虛擬機器網卡發包流程294 7.3.5 虛擬機器網卡接收資料包297 7.4 virtio設備類比298 7.4.1 virtio簡介298 7.4.2 virtio設備的初始化300 7.4.3 virtio驅動的載入314 7.4.4 virtio驅動的初始化320 7.4.5 virtio設備與驅動的通信330 7.5 ioeventfd和irqfd347 7.5.1 eventfd原理347 7.5.2 ioeventfd351 7.5.3 irqfd358 7.6 vhost net簡介362 7.6.1 vhost net介紹362 7.6.2 vhost的初始化363 7.6.3 vhost net網路模組367 7.6.4 vhost net的啟動376 7.6.5 vhost net的收發包378 7.7 設備直通與VFIO380 7.7.1 VFIO簡介380 7.7.2 VFIO相關內核模組分析387 7.7.3 VFIO與設備直通404 第8章 虛擬化雜項425 8.1 QEMU Guest Agent425 8.1.1 QEMU Guest Agent的使用425 8.1.2 qga源碼分析426 8.1.3 qga的QEMU側源碼解析431 8.2 QEMU虛擬機器熱遷移439 8.2.1 熱遷移的用法與基本原理439 8.2.2 熱遷移流程分析441 8.2.3 熱遷移中的髒頁同步454 8.2.4 熱遷移中的相關參數控制459 8.3 QEMU及虛擬化安全460 8.3.1 QEMU軟體安全460 8.3.2 QEMU安全思考466 8.4 容器與虛擬化466 8.4.1 Docker容器467 8.4.2 gVisor467 8.4.3 nemu468 8.4.4 crosvm、Firecracker與 cloud-hypervisor468 附錄 重要術語470
客服公告
热门活动
订阅电子报