深入浅出系统虚拟化:原理与实践pdf下载pdf下载

深入浅出系统虚拟化:原理与实践百度网盘pdf下载

作者:
简介:本篇主要提供深入浅出系统虚拟化:原理与实践pdf下载
出版社:清华大学出版社
出版时间:2021-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

虚拟化领域系统性教材,涵盖虚拟化历史、通用虚拟化、ARM虚拟化、鲲鹏虚拟化、新一代虚拟化原理和应用实战介绍。加速虚拟化技术落地,助力国产云计算产业发展。

内容简介

本书是一本论述系统虚拟化原理与实践的专业图书。全书分为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 VTx硬件辅助虚拟化概述

2.2.1VMX操作模式

2.2.2VMCS

2.2.3PIC & APIC

2.2.4Intel VTx中断虚拟化

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.6SRIOV

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.1VMSAv864架构概述

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缩略语

前言/序言

序一

面对新一轮全球科技产业竞争,更高效能的新一代系统的软硬件已成为各国政府高度重视并优先布局的方向。新应用、新技术、新计算架构、百亿级连接、爆炸式数据增长将重塑ICT(信息和通信技术)产业新格局,催生新的计算产业链条。如同在物理世界中电力是生产力一般,在数字经济时代,算力是生产力,驱动数字经济高质量发展。2019年,华为公司首次发布计算产业战略,以鲲鹏和昇腾为根基,围绕五大根技术CPU、NPU、OS、DB和AI框架,持续构建开放生态,联合产业伙伴共同推进计算产业发展。

由《鲲鹏计算产业发展白皮书》可知,“到2023年,全球基础软件市场空间将达1524.7亿美元,5年复合增长率为5.3%,中国基础软件市场拥有更大的活力和增长潜力。在操作系统、虚拟化等软件市场,新计算平台的出现,为厂商带来了更大的发展空间”。因此,虚拟化是计算全栈的重要技术之一,是基础软件生态的重要组成部分。

虚拟化技术当前主要应用于从云数据中心到边缘智能设备等 “云网边端”全场景。历史上,虚拟化技术和计算机的发展密切相关,相辅相成。从1959年开始,虚拟化技术就一直备受重视,在主机、服务器和云计算时代,虚拟化技术一直是计算的底层推动力之一。在早期的主机虚拟化和x86虚拟化阶段,我们的虚拟化技术整体受制于人。但随着新型硬件和新型计算架构的出现,我们在系统虚拟化方面取得了部分突破,并建立了基于多样化算力的虚拟化基础软件生态。我相信随着计算产业的持续战略投入,必将迎来一个以系统虚拟化等技术为代表的基础软件黄金时代。

计算产业的繁荣离不开生态的支持,华为公司将通过“硬件开放、软件开源、使能伙伴、发展人才”的方式构建计算产业生态,并为此建立了openEuler等一系列开源社区,持续投入开源社区建设,同时推出“华为智能计算技术丛书”。作为该丛书的重要组成部分,本书基于主流虚拟化架构,结合鲲鹏和openEuler操作系统的虚拟化技术,系统介绍了CPU、内存和I/O 虚拟化的基本原理,通过重要的虚拟化相关文献和静态源码解读深入理解原理,设计实验进行动态技术验证。通过“理论+实践”的有机结合,动手构建一个基于开源StratoVirt的轻量级虚拟化平台,希望帮助读者更好地理解系统虚拟化技术的来龙去脉。希望读者通过本书,将虚拟化技术更深入地应用到计算产业中,共同构建繁荣的可持续发展的基础软件新生态,共创数字经济新未来!

华为技术有限公司副总裁/计算产品线总裁

2021年9月

序二

互联网、物联网、5G移动通信、大数据、云计算、人工智能、虚拟现实、区块链等新一代信息技术将加速创新和应用步伐。随着算法、算力和数据的进一步发展,众多的新兴计算模式正在创造万物互联的新时代,数字化、网络化、智能化的基础设施将发挥更大的作用。云计算作为信息社会的重要基础设施,承载了物联网、大数据、人工智能等各种各样的应用,我国“十三五”规划将云计算列为国家的重大战略性新兴产业予以大力扶持和发展。在数字化基建的推动下,新技术、新模式不断发展,我国云计算迎来快速发展期,延伸出创新的应用场景和市场需求。我国拥有数量较多的网民和IT从业者,拥有较好的移动通信基础设施,拥有较多的超级应用需求,云计算基础设施具有超级应用驱动、系统深度集成和优化、平台高度可扩展的特点。因此,我国主要的云服务提供商倾向于构建自己的基础设施,并为其超级应用量身定制了大量优化,并且正朝着软硬件共同设计的方向发展,以提高效率和灵活性。由此可见,云计算规模的增长使效率成为首要的优化目标,基于深度集成和优化才能提供具有竞争力的云计算产品和服务。

系统虚拟化技术是云计算的核心支撑技术之一,我国在这方面长期落后。近年来,随着国内学术界和工业界的不断努力,系统虚拟化技术与国外的差距正在缩小,但国内这方面的人才比较缺乏。只有解决了人才问题,我们才能在国际竞争中不落下风。目前,鲲鹏计算产业生态正在蓬勃发展,从产业生态和人才培养的角度来看,《深入浅出系统虚拟化: 原理与实践》的出版有助于推广虚拟化技术,有利于构建软硬件协同、深度集成和优化的可扩展的自主云计算基础设施。本书系统地介绍了当前系统虚拟化技术的发展历史、基本原理和应用实践,包括CPU、内存和I/O等主要硬件资源的虚拟化方法和技术,以及华为公司的鲲鹏虚拟化架构和基于Rust的轻量级虚拟化平台。同时结合虚拟化技术领域的前沿研究,本书还介绍了通用“多虚一”架构的关键技术路线。通过本书的源码分析,读者能较为深入地了解系统虚拟化的基本原理,并通过相应的实验动手实践。本书适合用作高年级本科生或研究生学习虚拟化和云计算的教材,对于希望在虚拟化和云计算领域进行深入探索的研发人员,本书也是一部很好的参考书。

金海

华中科技大学教授/IEEE Fellow2021年9月