编辑推荐
从源码到实验,剖析主流系统虚拟化技术,助力计算产业。
内容简介
本书是一本论述系统虚拟化原理与实践的专业图书。全书分为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)。
章节目录
版权信息
内容简介
作者简介
华为技术有限公司
序一 FOREWORD
序二 FOREWORD
前言 PREFACE
第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.2 openEuler的虚拟化技术
本章小结
第2章 CPU虚拟化
2.1 CPU虚拟化概述
2.1.1 敏感非特权指令的处理
2.1.2 虚拟机上下文切换
2.1.3 中断虚拟化
2.2 Intel VT-x硬件辅助虚拟化概述
2.2.1 VMX操作模式
2.2.2 VMCS
2.2.3 PIC&APIC
2.2.4 Intel VT-x中断虚拟化
2.3 QEMU/KVM CPU虚拟化实现
2.3.1 KVM模块初始化
2.3.2 虚拟机创建
2.3.3 vCPU创建
2.3.4 vCPU运行
2.3.5 实验:CPU虚拟化实例
2.4 QEMU/KVM中断虚拟化实现
2.4.1 PIC & IOAPIC模拟
2.4.2 PCI设备中断
2.4.3 QEMU/KVM中断路由
2.4.4 虚拟中断注入
2.4.5 实验:e1000网卡中断虚拟化
2.5 GiantVM 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.3 QEMU/KVM内存虚拟化源码
3.3.1 QEMU内存数据结构
3.3.2 实验:打印MemoryRegion树
3.3.3 KVM内存数据结构
3.3.4 实验:将GVA翻译为HPA
3.4 GiantVM内存虚拟化
3.4.1 分布式共享内存
3.4.2 GiantVM中的DSM架构
3.4.3 GiantVM中DSM的实现
本章小结
第4章 I/O虚拟化
4.1 I/O虚拟化概述
4.1.1 I/O过程
4.1.2 I/O虚拟化的基本任务
4.1.3 软件实现的I/O虚拟化
4.1.4 硬件辅助的I/O虚拟化
4.2 I/O虚拟化的实现方式
4.2.1 PCI设备简介
4.2.2 设备模拟
4.2.3 I/O半虚拟化
4.2.4 设备直通访问
4.2.5 VFIO
4.2.6 SR-IOV
4.3 QEMU/KVM虚拟设备的实现
4.3.1 QEMU对象模型
4.3.2 主板芯片组与总线模拟
4.3.3 QEMU/KVM设备访问的模拟
4.3.4 实验:为edu设备添加设备驱动
4.4 GiantVM中的I/O处理
4.4.1 PIO转发
4.4.2 MMIO转发
4.4.3 DMA的处理
本章小结
第5章 鲲鹏虚拟化
5.1 鲲鹏虚拟化框架
5.1.1 鲲鹏虚拟化简介
5.1.2 EL2虚拟化框架
5.2 鲲鹏CPU虚拟化
5.2.1 CPU虚拟化
5.2.2 EL2异常级
5.2.3 VHE
5.3 鲲鹏中断虚拟化
5.3.1 GICv1
5.3.2 GICv2
5.3.3 GICv3/GICv4
5.3.4 GICv3/GICv4中断虚拟化
5.4 鲲鹏内存虚拟化
5.4.1 VMSAv8-64架构概述
5.4.2 地址空间与页表
5.4.3 内存属性、访问权限与缺页异常
5.4.4 MPAM
5.5 鲲鹏I/O虚拟化
5.5.1 MMIO的模拟
5.5.2 DMA重映射——SMMUv3
5.5.3 SMMUv3中的缓存机制
5.6 鲲鹏时钟虚拟化
本章小结
第6章 轻量级虚拟化平台StratoVirt
6.1 StratoVirt概述
6.2 发展背景
6.3 StratoVirt架构设计
6.3.1 CPU子系统
6.3.2 内存子系统
6.3.3 I/O子系统
6.4 从零开始构建StratoVirt
6.4.1 总体介绍
6.4.2 KVM模型
6.4.3 内存模型
6.4.4 CPU模型
6.4.5 BootLoader实现
6.4.6 串口实现
6.4.7 Epoll实现
6.4.8 鲲鹏平台支持
本章小结
附录A 缩略语
深入浅出系统虚拟化:原理与实践(华为智能计算技术丛书)是2021年由清华大学出版社出版,作者戚正伟,管海兵。
得书感谢您对《深入浅出系统虚拟化:原理与实践(华为智能计算技术丛书)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。