深入探析Linux系统虚拟化原理、实现与安全
内容简介
- 本书系统性地剖析了Linux系统虚拟化的核心技术,构建从基础原理、实现细节到安全攻防的完整虚拟化知识体系。书中内容涵盖CPU、内存、I/O与中断虚拟化等核心模块,结合QEMU/KVM等主流开源框架的代码实例,揭示虚拟化软件的设计逻辑与底层实现机制。在此基础上,本书专门设置了虚拟化安全章节,系统介绍了虚拟化赋能的安全特性、虚拟化引入的潜在威胁,以及相应的防御方法。
作者信息
- 贾晓启 周启航

-
第一章实验:环境搭建
本章介绍了如何搭建KVM虚拟化平台,包括安装Ubuntu Host系统、编译安装Linux内核、配置KVM支持、编译安装QEMU,以及如何创建和启动虚拟机。
-
第二章实验:CPU虚拟化
本章介绍了三个KVM虚拟化实验:实现一个简易的KVM虚拟机实例、捕获虚拟机下一条指令地址信息、伪造虚拟机CPUID信息。
-
第三章实验:内存虚拟化
本章介绍了三个虚拟化实验:EPT页表副本的创建与替换、VMFUNC的创建与使用、气球模型的充气与放气实现,通过这些实验展示了虚拟化技术中内存管理和隔离的关键技术。
-
第四章实验:I/O虚拟化
本章介绍了三种I/O虚拟化实现方式的实验:完全设备模拟方式创建虚拟PCI设备、virtio方式创建虚拟外设以及vhost方式创建虚拟外设,并分别实现了与虚拟机的数据传输功能。
-
第五章实验:中断虚拟化
本章介绍了中断虚拟化的两个实验:一是在虚拟机中添加自定义中断向量并通过KVM注入虚拟中断触发处理;二是为自定义虚拟设备增加APIC中断机制支持,实现异步I/O处理。
-
第六章实验:虚拟化安全
本章介绍了使用LibVMI库进行虚拟机自省的实验,包括安装配置LibVMI环境、获取Windows虚拟机内核信息、监控CR3寄存器事件以及获取虚拟机进程列表等虚拟化监控应用。
-
附录:团队分工
本书的提纲和主要内容基于两位作者多年来在云计算和虚拟化安全领域的科研工作和教学经验。写作时,首先由贾晓启和周启航两位老师确立全书结构和各章大纲,然后由周启航老师完成初稿撰写,再由分布式与移动系统安全(Distributed And Mobile System Security,DAMS)实验室的博士研究生们通过多轮互审、分阶段修订的方式持续完善。 具体而言,第1章(系统虚拟化概述)、第2章(CPU虚拟化)的修订及实验由姜楠、卢奕帆、黄思聪完成;第3章(内存虚拟化)的修订及实验由徐少文、钱非凡、延晓龙完成;第4章(I/O虚拟化)的修订及实验由陈家赟、曹文卓、万子森、赵元博完成;第5章(中断虚拟化)的修订及实验由姜楠、谢强完成;第6章(虚拟化安全)的修订及实验由张志聪、徐少文完成。宋燕妮负责全书的图片美化和参考文献梳理,贾晓启与周启航负责整体内容的审核。