深入探析LINUX系统虚拟化原理、实现与安全
图书信息
作者:贾晓启,周启航著著
出版社:科学出版社
定价:168.00
ISBN:9787030829221
出版时间:2026-02-01
分类:图书,行业职业,计算机,操作系统
商品介绍
目录
前言
第1章 系统虚拟化概述 1
1.1 什么是系统虚拟化 1
1.2 系统虚拟化发展史 1
1.2.1 诞生:20世纪60年代至20世纪70年代 1
1.2.2 沉寂:20世纪80年代至20世纪90年代 2
1.2.3 复兴:21世纪初 3
1.2.4 爆发:21世纪初至今 4
1.3 系统虚拟化分类 4
1.3.1 虚拟化方案分类 4
1.3.2 虚拟化软件架构分类 5
1.4 KVM系统虚拟化软件 7
1.4.1 KVM简介 7
1.4.2 KVM核心代码文件 7
1.5 实验题 8
1.5.1 实验一:虚拟化平台搭建 8
1.5.2 实验二:虚拟机创建 8
第2章 CPU虚拟化 9
2.1 X86硬件架构 9
2.1.1 X86架构简介 9
2.1.2 X86虚拟化漏洞 10
2.2 Intel VT-x 11
2.2.1 VMX的两种运行模式 11
2.2.2 新增指令 12
2.2.3 虚拟机控制结构体 12
2.3 VCPU数据结构 14
2.3.1 通用VCPU数据结构 14
2.3.2 VMX相关VCPU数据结构 15
第3章 内存虚拟化 48
3.1 内存管理 48
3.1.1 内存寻址 48
3.1.2 KVM内存虚拟化核心数据结构 50
3.1.3 虚拟机物理内存构建 55
3.2 影子页表 64
3.2.1 影子页表原理 64
3.2.2 影子页表初始化 64
3.2.3 影子页表加载 68
3.2.4 影子页表缺页处理 69
3.3 扩展页表EPT 79
3.3.1 EPT原理 79
3.3.2 EPT初始化 79
3.3.3 EPT加载 81
3.3.4 EPT缺页处理 82
3.3.5 多EPT切换 84
3.4 VPID机制 84
3.5 气球模型 85
3.5.1 气球模型原理 85
3.5.2 气球模型实现 87
3.6 实验题 90
3.6.1 实验一:影子页表隔离 90
3.6.2 实验二:EPT页表切换 91
3.6.3 实验三:气球模型页面监控 91
第4章 IO虚拟化 92
4.1 设备管理 92
4.1.1 物理计算机系统中的设备管理 92
4.1.2 虚拟化环境中的设备管理 93
4.1.3 PCI设备 94
4.2 完全设备虚拟化 100
4.2.1 设备模型 100
4.2.2 MIO处理流程 100
4.2.3 Port I/O处理流程 105
4.3 Virtual I/O 110
4.3.1 Virtqueue 110
4.3.2 Virtio-balloon实现 117
4.3.3 Virtio-net实现 153
4.4 VHost 183
4.4.1 VHost原理 183
4.4.2 VHost实现 184
4.5 轻量级I/O退出 199
4.6 Intel VT-d 202
4.6.1 概述 202
4.6.2 根条目表和上下文条目表 203
4.6.3 I/O页表 204
4.6.4 硬件探测 205
4.7 SR-IOV 206
4.7.1 概述 206
4.7.2 VFIO基本概念 206
4.7.3 VFIO实现 207
4.8 实验题 214
4.8.1 实验一:软件完全虚拟化设备创建 214
4.8.2 实验二:Virtio设备创建 214
4.8.3 实验三:VHost设备创建 214
4.8.4 实验四:DA权限控制 214
第5章 中断虚拟化 215
5.1 中断处理流程 215
5.1.1 单核处理器中断响应 215
5.1.2 多核处理器中断响应 216
5.2 虚拟PIC中断处理实现 218
5.2.1 虚拟PIC核心数据结构 218
5.2.2 虚拟PIC的创建 220
5.2.3 虚拟PIC处理中断请求 226
5.3 虚拟APIC中断处理实现 232
5.3.1 虚拟APIC核心数据结构 232
5.3.2 虚拟APIC的创建 235
5.3.3 虚拟APIC处理中断请求 237
5.4 硬件中断虚拟化支持 243
5.4.1 Virtual-APIC page 244
5.4.2 Interrupt-window exiting 244
5.4.3 Posted-interrupt processing 246
5.5 MSI中断机制 248
5.5.1 MSI原理 248
5.5.2 MSI虚拟化 251
5.6 实验题 253
5.6.1 实验一:自定义中断 253
5.6.2 实验二:异步中断机制 253
第6章 虚拟化安全 254
6.1 虚拟化技术在安全中的应用 254
6.1.1 虚拟机自省 255
6.1.2 虚拟机内存访问控制 257
6.1.3 案例分析——基于LibVMI的虚拟机内核符号表获取 259
6.2 虚拟化技术中的安全威胁 260
6.2.1 虚拟化软件架构设计中的安全风险 260
6.2.2 虚拟化软件栈安全漏洞 262
6.2.3 攻击与威胁模型 265
6.3 面向虚拟化的安全防御 272
6.3.1 虚拟化软件安全增强 272
6.3.2 面向不可信虚拟化软件的虚拟机安全防护 277
6.4 实验题 278
6.4.1 实验一:虚拟机内核完整性度量 278
6.4.2 实验二:虚拟机系统调用捕获 279
6.4.3 实验三:降权虚拟化软件 279
参考文献 280
附录 缩略语 285
内容简介
本书系统性地剖析Linux系统虚拟化的核心技术,构建从基础原理、实现细节到安全攻防的完整虚拟化知识体系。书中内容涵盖CPU、内存、IO虚拟化与中断虚拟化等核心模块,结合QEMU/KVM等主流开源框架的代码实例,揭示虚拟化软件的设计逻辑与底层实现机制。在此基础上,本书专门设置虚拟化安全章节,系统介绍了虚拟化赋能的安全特性、虚拟化引入的潜在威胁,以及相应的防御方法。
本书面向云计算和系统安全相关专业学生,可作为学习虚拟化技术的实践参考用书,亦适用于相关领域从业者、研究人员及技术爱好者。
作者简介
贾晓启,中国科学院信息工程研究所研究员、博导、学位评定委员会委员,中国科学院大学岗位教授,民建中国科学院委员会主委,北京市欧美同学会副会长。曾获省部级科学技术一等奖4项,二等奖1项。曾获中国科学院北京分院“启明星”优秀人才奖、中国科学院教育教学二等奖、中国科学院大学领雁银奖等奖项。在IEEE TC/TIFS/TSE、USENIX Security、NDSS、ICSE等学术会议和期刊上发表论文90余篇,申请发明专利52项(授权32项)。主要研究方向包括云计算安全、操作系统安全、智能攻防技术等。
周启航,中国科学院信息工程研究所副研究员、硕导,入选中国科学院信息工程研究所优才计划(B类)。在IEEE TC、ASPLOS、USENIX Security、NDSS、CCS等学术会议和期刊上发表论文20余篇,申请发明专利10余项。主要研究方向包括云计算安全、系统虚拟化安全、机密计算等。
- 先秦诸子传播思想研究(仝冠军 著)
- 化工制图(孙玉泉 著)
- 化学反应工程(第四版)(未知)
- 神秘的五角银币((日)江户川乱步等著;季叶选编,珠海)
- 保险学(21世纪高等院校教材)(刘愈主编,科学)
- 勘查地球化学手册(第三卷 矿产勘查的岩石地球化学)((荷)G.J.S.戈维特(G.J.S.Govet)
- 董源潇湘图夏景山口待渡图(,上海书画)
- 恩惠(未知)
