书籍详情
深入浅出系统虚拟化:原理与实践
作者:戚正伟,管海兵 著
出版社:清华大学出版社
出版时间:2021-10-01
ISBN:9787302589419
定价:¥99.00
购买这本书可以去
内容简介
本书是一本论述系统虚拟化原理与实践的专业图书。全书分为6章,第1章概述系统虚拟化的基本概念、发展历史、趋势展望、主要功能和分类,以及目前典型的虚拟化系统,并介绍openEuler操作系统的虚拟化技术。第2~4章分别介绍系统虚拟化的三大组成部分: CPU虚拟化、内存虚拟化和I/O虚拟化的相关原理,并配备相应实验便于读者理解。第5章介绍基于ARMv8的鲲鹏虚拟化架构,并概述其CPU、中断、内存、I/O和时钟虚拟化的基本原理。第6章结合代码讲解轻量级虚拟化平台StratoVirt的基本原理和技术特点,读者可以跟随本书从零开始打造一个具备基本功能的轻量级虚拟化平台。 为便于读者高效学习、深入掌握系统虚拟化的基本原理,本书的源代码及安装运行说明均保存于GiantVM和 StratoVirt开源社区。后续将通过开源社区进行代码更新和线上交流。 本书可作为相关领域工程技术人员的参考书,也可作为高年级本科生和研究生的学习用书,还可作为对虚拟化技术感兴趣的爱好者的自学用书。
作者简介
戚正伟,博士,上海交通大学电信学院/软件学院教授/博导,CCF杰出会员, CCF系统软件和理论计算机专委会委员,微软亚洲研究院访问教师、美国CMU大学访问学者(美方教授为Edmund Clarke,计算机图灵奖得主) 。2011年入选教育部新世纪优秀人才计划,获得上海市技术发明一等奖、教育部科技进步一等奖、教育部技术发明一等奖、国家科技进步奖二等奖各一项,出版译著《UNIX环境高级编程(第2版)》,为2008、2009年度畅销榜TOP50(China-Pub)。出版专著《BlewBluePill:深入理解硬件虚拟机》((获得IBM出版计划资助)和译著《UNIX高级环境编程(第3版)》(京东计算机与互联网图书2014/2015年度销售榜Top 100)。
目录
第1章系统虚拟化概述
1.1系统虚拟化基本概念
1.2系统虚拟化的发展历史和趋势展望
1.2.1发展历史
1.2.2趋势展望
1.3系统虚拟化的主要功能和分类
1.3.1虚拟化基本功能
1.3.2虚拟化分类
1.3.3系统虚拟化实现方式
1.4典型虚拟化系统
1.4.1典型虚拟化系统简介
1.4.2openEuler的虚拟化技术
本章小结
第2章CPU虚拟化
2.1CPU虚拟化概述
2.1.1敏感非特权指令的处理
2.1.2虚拟机上下文切换
2.1.3中断虚拟化
2.2Intel VTx硬件辅助虚拟化概述
2.2.1VMX操作模式
2.2.2VMCS
2.2.3PIC & APIC
2.2.4Intel VTx中断虚拟化
2.3QEMU/KVM CPU虚拟化实现
2.3.1KVM模块初始化
2.3.2虚拟机创建
2.3.3vCPU创建
2.3.4vCPU运行
2.3.5实验:CPU虚拟化实例
2.4QEMU/KVM中断虚拟化实现
2.4.1PIC & IOAPIC模拟
2.4.2PCI设备中断
2.4.3QEMU/KVM中断路由
2.4.4虚拟中断注入
2.4.5实验:e1000网卡中断虚拟化
2.5GiantVM CPU虚拟化
2.5.1分布式vCPU
2.5.2跨节点中断转发
本章小结
第3章内存虚拟化
3.1内存虚拟化概述
3.2内存虚拟化的实现
3.2.1虚拟内存的实现:页表
3.2.2内存虚拟化的软件实现:影子页表
3.2.3内存虚拟化的硬件支持:扩展页表
3.2.4扩展页表与影子页表的结合:敏捷页表
3.2.5内存的半虚拟化:直接页表映射与内存气球
3.3QEMU/KVM内存虚拟化源码
3.3.1QEMU内存数据结构
3.3.2实验:打印MemoryRegion树
3.3.3KVM内存数据结构
3.3.4实验:将GVA翻译为HPA
3.4GiantVM内存虚拟化
3.4.1分布式共享内存
3.4.2GiantVM中的DSM架构
3.4.3GiantVM中DSM的实现
本章小结
第4章I/O虚拟化
4.1I/O虚拟化概述
4.1.1I/O过程
4.1.2I/O虚拟化的基本任务
4.1.3软件实现的I/O虚拟化
4.1.4硬件辅助的I/O虚拟化
4.2I/O虚拟化的实现方式
4.2.1PCI设备简介
4.2.2设备模拟
4.2.3I/O半虚拟化
4.2.4设备直通访问
4.2.5VFIO
4.2.6SRIOV
4.3QEMU/KVM虚拟设备的实现
4.3.1QEMU对象模型
4.3.2主板芯片组与总线模拟
4.3.3QEMU/KVM设备访问的模拟
4.3.4实验:为edu设备添加设备驱动
4.4GiantVM中的I/O处理
4.4.1PIO 转发
4.4.2MMIO 转发
4.4.3DMA 的处理
本章小结
第5章鲲鹏虚拟化
5.1鲲鹏虚拟化框架
5.1.1鲲鹏虚拟化简介
5.1.2EL2虚拟化框架
5.2鲲鹏CPU虚拟化
5.2.1CPU虚拟化
5.2.2EL2异常级
5.2.3VHE
5.3鲲鹏中断虚拟化
5.3.1GICv1
5.3.2GICv2
5.3.3GICv3/GICv4
5.3.4GICv3/GICv4中断虚拟化
5.4鲲鹏内存虚拟化
5.4.1VMSAv864架构概述
5.4.2地址空间与页表
5.4.3内存属性、访问权限与缺页异常
5.4.4MPAM
5.5鲲鹏I/O虚拟化
5.5.1MMIO的模拟
5.5.2DMA重映射——SMMUv3
5.5.3SMMUv3中的缓存机制
5.6鲲鹏时钟虚拟化
本章小结
第6章轻量级虚拟化平台StratoVirt
6.1StratoVirt概述
6.2发展背景
6.3StratoVirt架构设计
6.3.1CPU子系统
6.3.2内存子系统
6.3.3I/O子系统
6.4从零开始构建StratoVirt
6.4.1总体介绍
6.4.2KVM模型
6.4.3内存模型
6.4.4CPU模型
6.4.5BootLoader实现
6.4.6串口实现
6.4.7Epoll实现
6.4.8鲲鹏平台支持
本章小结
参考文献
附录A缩略语
1.1系统虚拟化基本概念
1.2系统虚拟化的发展历史和趋势展望
1.2.1发展历史
1.2.2趋势展望
1.3系统虚拟化的主要功能和分类
1.3.1虚拟化基本功能
1.3.2虚拟化分类
1.3.3系统虚拟化实现方式
1.4典型虚拟化系统
1.4.1典型虚拟化系统简介
1.4.2openEuler的虚拟化技术
本章小结
第2章CPU虚拟化
2.1CPU虚拟化概述
2.1.1敏感非特权指令的处理
2.1.2虚拟机上下文切换
2.1.3中断虚拟化
2.2Intel VTx硬件辅助虚拟化概述
2.2.1VMX操作模式
2.2.2VMCS
2.2.3PIC & APIC
2.2.4Intel VTx中断虚拟化
2.3QEMU/KVM CPU虚拟化实现
2.3.1KVM模块初始化
2.3.2虚拟机创建
2.3.3vCPU创建
2.3.4vCPU运行
2.3.5实验:CPU虚拟化实例
2.4QEMU/KVM中断虚拟化实现
2.4.1PIC & IOAPIC模拟
2.4.2PCI设备中断
2.4.3QEMU/KVM中断路由
2.4.4虚拟中断注入
2.4.5实验:e1000网卡中断虚拟化
2.5GiantVM CPU虚拟化
2.5.1分布式vCPU
2.5.2跨节点中断转发
本章小结
第3章内存虚拟化
3.1内存虚拟化概述
3.2内存虚拟化的实现
3.2.1虚拟内存的实现:页表
3.2.2内存虚拟化的软件实现:影子页表
3.2.3内存虚拟化的硬件支持:扩展页表
3.2.4扩展页表与影子页表的结合:敏捷页表
3.2.5内存的半虚拟化:直接页表映射与内存气球
3.3QEMU/KVM内存虚拟化源码
3.3.1QEMU内存数据结构
3.3.2实验:打印MemoryRegion树
3.3.3KVM内存数据结构
3.3.4实验:将GVA翻译为HPA
3.4GiantVM内存虚拟化
3.4.1分布式共享内存
3.4.2GiantVM中的DSM架构
3.4.3GiantVM中DSM的实现
本章小结
第4章I/O虚拟化
4.1I/O虚拟化概述
4.1.1I/O过程
4.1.2I/O虚拟化的基本任务
4.1.3软件实现的I/O虚拟化
4.1.4硬件辅助的I/O虚拟化
4.2I/O虚拟化的实现方式
4.2.1PCI设备简介
4.2.2设备模拟
4.2.3I/O半虚拟化
4.2.4设备直通访问
4.2.5VFIO
4.2.6SRIOV
4.3QEMU/KVM虚拟设备的实现
4.3.1QEMU对象模型
4.3.2主板芯片组与总线模拟
4.3.3QEMU/KVM设备访问的模拟
4.3.4实验:为edu设备添加设备驱动
4.4GiantVM中的I/O处理
4.4.1PIO 转发
4.4.2MMIO 转发
4.4.3DMA 的处理
本章小结
第5章鲲鹏虚拟化
5.1鲲鹏虚拟化框架
5.1.1鲲鹏虚拟化简介
5.1.2EL2虚拟化框架
5.2鲲鹏CPU虚拟化
5.2.1CPU虚拟化
5.2.2EL2异常级
5.2.3VHE
5.3鲲鹏中断虚拟化
5.3.1GICv1
5.3.2GICv2
5.3.3GICv3/GICv4
5.3.4GICv3/GICv4中断虚拟化
5.4鲲鹏内存虚拟化
5.4.1VMSAv864架构概述
5.4.2地址空间与页表
5.4.3内存属性、访问权限与缺页异常
5.4.4MPAM
5.5鲲鹏I/O虚拟化
5.5.1MMIO的模拟
5.5.2DMA重映射——SMMUv3
5.5.3SMMUv3中的缓存机制
5.6鲲鹏时钟虚拟化
本章小结
第6章轻量级虚拟化平台StratoVirt
6.1StratoVirt概述
6.2发展背景
6.3StratoVirt架构设计
6.3.1CPU子系统
6.3.2内存子系统
6.3.3I/O子系统
6.4从零开始构建StratoVirt
6.4.1总体介绍
6.4.2KVM模型
6.4.3内存模型
6.4.4CPU模型
6.4.5BootLoader实现
6.4.6串口实现
6.4.7Epoll实现
6.4.8鲲鹏平台支持
本章小结
参考文献
附录A缩略语
猜您喜欢