本书尝试将当前主要的虚拟机和系统级虚拟化原理梳理出来,从一个系统设计者的角度来介绍。从基本的原理出发,本书结合主流的x86体系结构和硬件上对虚拟化的支持来介绍系统级虚拟化是如何实现的。除介绍虚拟机与系统级虚拟化原理之外,本书力图加入学术界对于虚拟化技术或利用。
章节目录
第1章 开篇
1.1 形形色色的虚拟化
1.2 系统虚拟化
1.3 系统虚拟化简史
1.4 系统虚拟化的好处
第2章 x86架构及操作系统概述
2.1 x86的历史和操作系统概要
2.1.1 x86的历史
2.1.2 操作系统概述
2.2 x86内存架构
2.2.1 地址空间
2.2.2 地址
2.2.3 x86内存管理机制
2.3 x86架构的基本运行环境
2.3.1 三种基本模式
2.3.2 基本寄存器组
2.3.3 权限控制
2.4 中断与异常
2.4.1 中断架构
2.4.2 异常架构
2.4.3 操作系统对中断/异常的处理流程
2.5 进程
2.5.1 上下文
2.5.2 上下文切换
2.6 I/O架构
2.6.1 x86的I/O架构
2.6.2 DMA
2.6.3 PCI设备
2.6.4 PCI Express
2.7 时钟
2.7.1 x86平台的常用时钟
2.7.2 操作系统的时钟观
第3章 虚拟化概述
3.1 可虚拟化架构与不可虚拟化架构
3.2 处理器虚拟化
3.2.1 指令的模拟
3.2.2 中断和异常的模拟及注入
3.2.3 对称多处理器技术的模拟
3.3 内存虚拟化
3.4 I/O虚拟化
3.4.1 概述
3.4.2 设备发现
3.4.3 访问截获
3.4.4 设备模拟
3.4.5 设备共享
3.5 VMM的功能和组成
3.5.1 虚拟环境的管理
3.5.2 物理资源的管理
3.5.3 其他模块
3.6 VMM的分类
3.6.1 按虚拟平台分类
3.6.2 按VMM实现结构分类
3.7 典型虚拟化产品及其特点
3.7.1 VMware
3.7.2 Microsoft
3.7.3 Xen
3.7.4 KVM
3.8 思考题
第4章 基于软件的完全虚拟化
4.1 概述
4.2 CPU虚拟化
4.2.1 解释执行
4.2.2 扫描与修补
4.2.3 二进制代码翻译
4.3 内存虚拟化
4.3.1 概述
4.3.2 影子页表
4.3.3 内存虚拟化的优化
4.4 I/O虚拟化
4.4.1 设备模型
4.4.2 设备模型的软件接口
4.4.3 接口拦截和模拟
4.4.4 功能实现
4.4.5 案例分析: IDE的DMA操作
4.5 思考题
第5章 硬件辅助虚拟化
5.1 概述
5.2 CPU虚拟化的硬件支持
5.2.1 概述
5.2.2 VMCS
5.2.3 VMX操作模式
5.2.4 VM Entry/VM Exit
5.2.5 VM Exit
5.3 CPU虚拟化的实现
5.3.1 概述
5.3.2 VCPU的创建
5.3.3 VCPU的运行
5.3.4 VCPU的退出
5.3.5 VCPU的再运行
5.3.6 进阶
5.4 中断虚拟化
5.4.1 概述
5.4.2 虚拟PIC
5.4.3 虚拟I/O APIC
5.4.4 虚拟Local APIC
5.4.5 中断采集
5.4.6 中断注入
5.4.7 案例分析
5.5 内存虚拟化
5.5.1 概述
5.5.2 EPT
5.5.3 VPID
5.6 I/O虚拟化的硬件支持
5.6.1 概述
5.6.2 VT d技术
5.7 I/O虚拟化的实现
5.7.1 概述
5.7.2 设备直接分配
5.7.3 设备I/O地址空间的访问
5.7.4 设备发现
5.7.5 配置DMA重映射数据结构
5.7.6 设备中断虚拟化
5.7.7 案例分析: 网卡的直接分配在Xen里面的实现
5.7.8 进阶
5.8 时间虚拟化
5.8.1 操作系统的时间概念
5.8.2 客户机的时间概念
5.8.3 时钟设备仿真
5.8.4 实现客户机时间概念的一种方法
5.8.5 实现客户机时间概念的另一种方法
5.8.6 如何满足客户机时间不等于实际时间的需求
5.9 思考题
第6章 类虚拟化技术
6.1 概述
6.1.1 类虚拟化的由来
6.1.2 类虚拟化的系统实现
6.1.3 类虚拟化接口的标准化
6.2 类虚拟化体系结构
6.2.1 指令集
6.2.2 外部中断
6.2.3 物理内存空间
6.2.4 虚拟内存空间
6.2.5 内存管理
6.2.6 I/O子系统
6.2.7 时间与时钟服务
6.3 Xen的原理与实现
6.3.1 超调用
6.3.2 虚拟机与Xen的信息共享
6.3.3 内存管理
6.3.4 页表虚拟化
6.3.5 事件通道
6.3.6 授权表
6.3.7 I/O系统
6.3.8 实例分析: 块设备虚拟化
6.4 XenLinux的运行
6.5 思考题
第7章 虚拟环境性能和优化
7.1 性能评测指标
7.2 性能评测工具
7.2.1 重用操作系统的性能评测工具
7.2.2 面向虚拟环境的性能评测工具
7.3 性能分析工具
7.3.1 Xenoprof
7.3.2 Xentrace
7.3.3 Xentop
7.4 性能优化方法
7.4.1 降低客户机退出事件发生频率
7.4.2 降低客户机退出事件处理时间
7.4.3 降低处理器利用率
7.5 性能分析案例
7.5.1 案例分析: Xenoprof
7.5.2 案例分析: Xentrace
7.6 可扩展性
7.6.1 宿主机的可扩展性
7.6.2 客户机的可扩展性
7.7 思考题
第8章 虚拟化技术的应用模式
8.1 常用技术介绍
8.1.1 虚拟机的动态迁移
8.1.2 虚拟机快照
8.1.3 虚拟机的克隆
8.1.4 案例分析: VMware VMotion 和VMware 快照
8.2 服务器整合
8.2.1 服务器整合技术
8.2.2 案例分析: VMware Infrastructure 3
8.3 灾难恢复
8.3.1 灾难恢复与虚拟化技术
8.3.2 案例分析: VMware Infrastructure 3
8.4 改善系统可用性
8.4.1 可用性的含义
8.4.2 虚拟化技术如何提高可用性
8.4.3 虚拟化技术带来的新契机
8.4.4 案例分析: VMware HA和 LUCOS
8.5 动态负载均衡
8.5.1 动态负载均衡的含义
8.5.2 案例分析: VMware DRS
8.6 增强系统可维护性
8.6.1 可维护性的含义
8.6.2 案例分析: VMware VirtualCenter
8.7 增强系统安全与可信任性
8.7.1 安全与可信任性的含义
8.7.2 虚拟化技术如何提高系统安全
8.7.3 虚拟化技术如何提高可信任性
8.7.4 案例分析: sHyper、VMware Infrastructure 3和CoVirt
8.8 Virtual Appliance
第9章 前沿虚拟化技术
9.1 基于容器的虚拟化技术
9.1.1 容器技术的基本概念和发展背景
9.1.2 基于容器的虚拟化技术
9.2 系统安全
9.2.1 基于虚拟化技术的恶意软件
9.2.2 虚拟机监控器的安全性
9.3 系统标准化
9.3.1 开放虚拟机格式
9.3.2 虚拟化的可管理性
9.3.3 虚拟机互操作性标准
9.4 电源管理
9.5 智能设备
9.5.1 多队列网卡
9.5.2 SR IOV
9.5.3 其他
内容说明
《系统虚拟化》深入而又系统地介绍了以软件完全虚拟化、硬件辅助虚拟化及类虚拟化为核心的各种系统虚拟化技术。全书共9章,第1章概述性地介绍了虚拟化技术;第2章介绍计算机系统知识;第3章从CPU虚拟化、内存虚拟化和I/0虚拟化三大块对系统虚拟化技术进行概述,并介绍虚拟机监控器(VMM)的组成与分类,而且对市场上流行的虚拟化产品进行了简单介绍;第4-6章分别从基于软件的完全虚拟化、硬件辅助的完全虚拟化和类虚拟化三种实现技术角度深入介绍系统虚拟化方法;第7章介绍虚拟机的性能评测和调试技术;第8章介绍系统虚拟化的应用实例;最后在第9章对虚拟机和系统虚拟化技术的发展作一个展望。
《系统虚拟化》是系统虚拟化技术实现原理的全面展示,也是作者这些年在虚拟化学术和工业研究领域开发的经验总结。《系统虚拟化》理论与实践相结合,用通俗易懂的语言描述系统虚拟化技术原理,其中不乏具有代表性和普遍意义的实例和技术细节,是学习系统虚拟化技术的宝贵资料。《系统虚拟化》不仅可以作为教材,供计算机相关专业的大学高年级学生和研究生阅读;而且可以作为一本参考手册,供大学或企业里与系统相关领域的研究开发人员以及对虚拟机及虚拟化核心技术有兴趣的研究者和开源工作者阅读。
- PC官方版
- 安卓官方手机版
- IOS官方手机版