内容简介
目前,无论是学术界还是工业界,虚拟化技术的研究和应用都是热点。在不断涌现出的虚拟化解决方案中,开源解决方案Xen以其独特的虚拟化设计模式,以及接近单机操作系统的性能被学术界和工业界广泛看好,被认为是未来最有前途的虚拟化解决方案之一。
本书以Xen 3.1.0源码为基础,以通过源码剖析原理的方式深入细致地分析了Xen的半虚拟化技术;着重介绍了在x86平台上Xen半虚拟化技术提供的用以控制和管理虚拟机的内核接口,以及相关的原理和操作应用,包括半虚拟化技术的基本机制和策略,Xen的子系统及与安全相关的应用模块。
(1) 基本机制和策略,即Xen半虚拟化技术的3大核心机制:与虚拟机启动和管理相关的信息页机制,与虚拟机特权级控制和通信相关的超级调用和事件通道机制,以及与虚拟机数据共享和传输相关的授权表机制。
(2) 虚拟化子系统,即CPU虚拟化子系统、内存虚拟化子系统及I/O设备虚拟化子系统。CPU虚拟化子系统主要包括虚拟CPU原理和结构、新架构下中断和异常处理机制的变化、时间和计时器相关操作,以及虚拟CPU的调度原理等;内存虚拟化子系统主要包括分页分段机制、内存分配和地址转换等;I/O设备虚拟化子系统主要包括分离驱动模型(前后端设备模型)、虚拟块设备和网络设备的基本原理机及相关操作等。
(3)安全相关模块,包括两个模块:访问控制模块(ACM)和虚拟化可信平台模块(vTPM)。详细介绍各个模块的基本原理及相应的实现和使用方法。
(4)Xen前沿工作:对Xen全虚拟化技术的原理进行介绍,通过硬件虚拟化技术实现对Xen全虚拟化的支持,并以Intel VT技术为重点介绍硬件虚拟化的知识。
本书作者
石磊硕士,2005年毕业于武汉大学国际软件学院,获得软件工程学士学位以及市场营销学士学位。2007年9月~2009年5月,在华中科技大学“服务计算技术与系统”教育部重点实验室暨“集群与网格计算”湖北省重点实验室从事研究工作,主攻虚拟化技术及虚拟化安全技术,2009年8月赴美留学。
目录
第1部分 Xen和虚拟化技术
第1章 概述
1.1 虚拟化技术
1.1.1 虚拟化技术的发展历史
1.1.2 虚拟化技术的实现层次及分类
1.1.3 虚拟机与虚拟机监视器
1.1.4 x86的虚拟化技术
1.2 Xen 虚拟机系统
1.2.1 x86架构的虚拟化
1.2.2 Xen的设计理念
1.2.3 Xen的发展历史
1.3 本章小结
第2章 Xen体系结构
2.1 Xen Hypervisor
2.1.1 基本概念
2.1.2 虚拟域(Domain)
2.1.3 控制面板
2.2 CPU虚拟化
2.2.1 半虚拟化
2.2.2 硬件虚拟化
2.3 内存虚拟化
2.4 I/O虚拟化
2.5 本章小结
第2部分 Xen基本机制和策略
第3章 Xen信息页
3.1 启动信息页
3.1.1 启动信息页的数据结构
3.1.2 结构体start-info成员字段说明
3.2 共享信息页
3.2.1 共享信息页的数据结构
3.2.2 结构体shared_info成员字段说明
3.3 本章小结
第4章 超级调用和事件通道
4.1 系统调用
4.1.1 系统调用的过程
4.1.2 系统调用的实现
4.2 超级调用
4.2.1 超级调用的实现方式
4.2.2 超级调用页
4.2.3 申请超级调用
4.3 事件通道
4.3.1 基本概念
4.3.2 事件通道的初始化
4.3.3 事件通道的操作
4.3.4 事件通道的使用
4.4 本章小结
第5章 授权表
5.1 共享内存
5.1.1 Linux中的共享内存
5.1.2 Xen中的共享内存
5.2 授权表
5.2.1 授权项
5.2.2 授权表的操作
5.3 页面映射
5.3.1 页面映射操作
5.3.2 撤销映射操作
5.4 页面传递
5.4.1 页面传递操作
5.4.2 内存拷贝操作
5.5 授权表的使用
5.5.1 授权引用操作
5.5.2 设备驱动gntdev
5.6 本章小结
第3部分 Xen子系统
第6章 CPU虚拟化
6.1 中断和异常的处理
6.1.1 基本知识
6.1.2 物理中断处理
6.1.3 虚拟中断处理
6.1.4 异常处理
6.2 时间和计时器
6.2.1 时间
6.2.2 计时器
6.2.3 时间和计时器操作
6.3 VCPU设置
6.3.1 VCPU数据结构
6.3.2 VCPU初始化
6.3.3 VCPU操作
6.4 VCPU调度
6.4.1 调度器
6.4.2 调度处理
6.5 本章小结
第7章 内存虚拟化
7.1 内存寻址
7.1.1 80386的分段机制
7.1.2 Xen的分段机制
7.1.3 80386的分页机制
7.1.4 Xen的分页机制
7.2 内存分配
7.2.1 Xen的内存分配
7.2.2 Guest OS的物理内存
7.2.3 物理内存管理
7.3 虚拟地址转换
7.3.1 直接模式
7.3.2 页表更新
7.3.3 可写页表
7.4 本章小结
第8章 I/O设备虚拟化
8.1 设备虚拟化的三种模型
8.1.1 仿真设备模型
8.1.2 直接分配设备模型
8.1.3 虚拟设备模型
8.2 虚拟设备模型及其相关机制
8.3 隔离驱动域
8.4 设备I/O环
8.4.1 设备I/O环的基本原理
8.4.2 设备I/O环的实现方式
8.4.3 设备I/O环的实例——块设备的I/O环
8.5 Xenstore和Xenbus
8.5.1 Xenstore简介
8.5.2 Xenstore的实现原理
8.5.3 Xenbus简介
8.5.4 Xenbus的实现原理
8.6 虚拟块设备
8.6.1 虚拟块设备I/O环
8.6.2 虚拟块设备的初始化
8.7 虚拟网络设备
8.7.1 虚拟网络设备简介
8.7.2 虚拟网络设备的实现原理
8.7.3 虚拟网络设备的数据传输流程
8.8 本章小结
第4部分 Xen安全机制
第9章 Xen访问控制模块
9.1 ACM模块总体介绍
9.1.1 ACM模块架构
9.1.2 ACM模块的常用功能
9.1.3 ACM模块的编译
9.2 策略文档的编译与装载
9.2.1 策略文档的格式
9.2.2 策略文档的编译
9.2.3 策略文档的装载
9.3 ACM模块分析
9.3.1 ACM模块的Hooks函数及其接口函数
9.3.2 中国墙策略实现分析
9.3.3 STE策略实现分析
9.4 ACM模块实际操作示例
9.5 本章小结
第10章 可信平台模块虚拟化
10.1 可信计算
10.1.1 可信的定义
10.1.2 可信平台
10.1.3 可信平台模块
10.2 虚拟化可信平台模块(vTPM)
10.2.1 vTPM的设计
10.2.2 vTPM的实现
10.2.3 vTPM的使用
10.3 本章小结
第5部分 Xen展望
第11章 硬件虚拟化
11.1 特权级环
11.2 VMX和VMCS
11.2.1 VMX
11.2.2 VMCS
11.3 HVM中的其他机制
11.4 本章小结
附录 名词解释
参考文献
先读为快
第1部分 Xen和虚拟化技术
第2章 Xen体系结构
2.1.1 基本概念
在Xen系统中,Xen向Domain提供了基本的虚拟硬件(VCPU、虚拟MMU)和基本机制(事件通道);同时向Domo提供了虚拟域管理API(控制接口),使Dom0能够利用运行在其用户空间的管理工具(控制软件)控制和管理其他Domain。对于Domain对设备的访问,Xen提供了相应的硬件接口(安全硬件接口),以保证设备访问的安全进行。
1.控制接口
Xen提供的控制接口仅能被Dom0使用,用以帮助Dom0控制和管理其他的Domain。通过控制接口,Dom0不仅能够创建、销毁Domain,控制Domain的运行、暂停、恢复以及迁移,还能够实现对其他Domain的CPU调度、内存分配以及设备访问,如物理磁盘存储和网络接口等。
2.安全硬件接口
作为Xen的核心组件之一,安全硬件接口(Safe Hardware Interface)需要完成除虚拟CPU、MMU之外所有的硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址空间配置、虚拟硬件中断等。安全硬件接口只能被拥有原生设备驱动的Domain(Domo、IDD)使用,向其他Domain仅提供虚拟硬件服务。这些工作是通过建立在拥有原生设备驱动的Domain和其他Domain之间的设备通道(Device Channel)来完成的。设备通道并不是Xen系统中存在的独立概念,而是借由事件通道和共享内存来实现的。其他Domain中的Guest OS通过设备通道向拥有原生设备驱动的Domain提交异步I/O请求,再由拥有原生设备驱动的Domain通过安全硬件接口完成I/O请求。
……