内容简介
第1章 虚拟化技术的现状
1.1什么是虚拟化技术
1.1.1 CPU的虚拟化
1.1.2 I/O的虚拟化
1.2为什么要虚拟化
1.3历史上第一台虚拟机
1.4 x86架构虚拟化的问题
1.5一些解决x86架构虚拟化问题的方案
1.5.1二进制翻译
1.5.2泛虚拟化
1.5.3硬件辅助虚拟化
1.6 Xen的理念
1.6.1方案和机制的分离
1.6.2做得越少越好
1.7 Xen的系统结构
1.7.1 Hypervisor,操作系统,应用程序之间的关系
1.7.2 Domain 0的角色
1.7.3非特权级的Domain
1.7.4 HVM的Domain
1.7.5 Xen的结构配置
第2章 探索Xen虚拟体系结构
2.1作为泛虚拟化客户端启动
2.2利用特权级限制操作
2.3用超级调用取代特权指令
2.4探索Xen事件模型
2.5与共享内存进行通信
2.6拆分设备驱动模型
2.7 VM生命周期
2.8练习:最简单的Xen内核
2.8.1客户机入口点
2.8.2把所有内容放在一起
第3章 理解Shared Info Pages
3.1获取启动时钟信息
3.2 Shared Info Page
3.3 Xen中的时间管理
3.4练习:实现函数gettimeofday()
第4章 使用授权表(Grant Table)
4.1内存共享
4.1.1映射(Mapping)一个页面
4.1.2 domain间的数据传递(Transferring)
4.2设备I/O环
4.3授权以及撤销授权
4.4练习:映射授权页面(granted page)
4.5练习:在VM之间共享内存
第5章 Xen的内存管理
5.1 x86环境下的内存管理
5.2伪物理地址模型(Pseudo-Physical Memory Model)
5.3 32位x86系统中的分段模式
5.4使用Xen Memory Assist
5.5使用Ballon Driver控制内存使用
5.6其他内存操作
5.7更新页表
5.7.1创建新的虚拟机(VM)实例
5.7.2处理页故障
5.7.3暂停(suspend)、恢复和迁移
5.8练习:映射Shared Info Page
第6章 理解设备驱动
6.1分离设备模型
6.2将驱动程序移出Domain 0
6.3理解共享存储器环形缓冲区
6.3.1分析Xen的实现
6.3.2通过内存栅障(Memory Barriers)实现顺序操作
6.4通过XenBus连接设备
6.5处理来自消息的通知
6.6通过XenStore进行配置
6.7练习:控制台设备
第7章 使用事件通道
7.1事件和中断
7.2处理陷阱(Trap)
7.3事件类型
7.4请求事件
7.5绑定事件通道到VCPU上
7.6绑定通道上的操作
7.7获取通道状态
7.8屏蔽事件
7.9事件和调度
7.10示例:一个完整的控制台驱动
第8章 深入学习XenStore
8.1 XenStore接口
8.2浏览 XenStore
8.3 XenStore设备
8.4读和写一个键
8.4.1用户空间方法
8.4.2从内核调用的方法
8.5其他操作
第9章 支持核心设备
9.1虚拟块设备驱动
9.1.1设置块设备
9.1.2数据传输
9.2使用Xen网络
9.2.1虚拟网络接口驱动
9.2.2设置虚拟接口
9.2.3发送和接收
9.2.4 NetChanne12
第10章 其他Xen设备
10.1 CD的支持
10.2虚拟帧缓冲器(Frame Buffer)
10.3 TPM驱动
10.4原生硬件
10.4.1 PCI支持
10.4.2 USB设备
10.5添加新的设备类型
10.5.1广播设备
10.5.2设置环形缓冲区
10.5.3困难
10.5.4访问设备
10.5.5设计后端驱动
第11章 Xen API
11.1 XML-RPC
11.1.1 XML-RPC数据类型
11.1.2远程过程调用
11.2探索Xen接口层次
11.3 Xen API类
11.4 Xend的功能
11.5 Xm命令行
11.6 Xen CIM提供者
11.7练习:枚举正在运行的虚拟机
11.8总结
第12章 虚拟机调度
12.1调度器接口概述
12.2历史上的调度器
12.2.1 SEDF
12.2.2 Credit调度器
12.3使用调度器API
12.3.1运行一个调度器
12.3.2 Domain0交互
12.4练习:添加一个新的调度器
12.5总结
第13章 HVM
13.1运行未经修改的操作系统
13.2 Intel VT-x和AMD SVM
13.3 HVM设备支持
13.4混合虚拟化
13.5 BIOS仿真
13.6设备模型和传统的I/O仿真
13.7半虚拟化I/O
13.8 Xen中HVM支持
第14章 未来的发展方向
14.1真实到虚拟,周而复始
14.2仿真和虚拟化
14.3移植的努力
14.4桌面
14.5功耗管理
14.6关于Domain0的问题
14.7 Stub域
14.8新的设备
14.9特殊的架构
14.10前景
附录 泛虚拟化客户操作系统移植概述
A.1 Domain创建工具(Domain Builder)
A.2启动环境
A.3设置虚拟中断描述符表(IDT)
A.4页表管理
A.5驱动
A.6 Domain0的责任
A.7效率
A.8小结