
“云计算核心技术分析”第5章
1. 虚拟化的概念:
虚拟化是使用虚拟化虚拟机管理程序(VMM,也称为虚拟机管理程序)在物理机上虚拟化并运行一个或多个虚拟机,这些虚拟机可以运行各种软件,例如真实计算机和资源占用. ,虚拟机彼此隔离,以确保安全稳定的运行.
2. 虚拟化管理程序的分类:
1)虚拟机管理程序类型

以类似操作系统的形式安装在硬件上,主要用于服务器应用程序. 代表包括VMware的ESX和Xen.
2)托管类型
安装在传统操作系统上,其性能不如虚拟机管理程序好. 代表VMware工作站.
3. CPU虚拟化技术的分类:
经典虚拟化方法:

现代计算机体系结构通常至少具有两个特权级别(即用户模式和核心模式,x86具有4个特权级别,分别为环0到环3)以分隔系统软件和应用程序软件. 可以读写系统关键资源的指令称为敏感指令. 只能在处理器的最高特权级别(内核状态)下执行的指令称为特权指令. 如果在执行特权指令时处理器状态不处于内核状态,则将引发异常,并且系统软件将处理非法访问.
经典的虚拟化方法是使用“特权释放”和“陷阱模拟”方法. 它将以非特权级别运行Guest OS,并以最高特权级别(完全控制系统资源)运行VMM. 在“释放” Guest OS的特权级别之后,Guest OS的大多数指令仍然可以直接在硬件上运行. 仅当特权指令执行时,VMM才会引发并处理异常(此过程称为“陷阱”). VMM模拟处理器执行特权指令(VMM对处理器执行特权指令,然后通过VMM将结果反馈给来宾OS). 整个过程称为“陷阱模拟”.
许多非x86服务器已经使用这种虚拟化方法长期支持虚拟化. (虚拟化技术历史悠久. 早在1960年代中期云计算核心技术剖析,IBM推出了世界上第一台支持虚拟化技术的计算机. IBM7044. 在接下来的几十年中,IBM系统360,IBM Z系列,IBM P系列和HP小型计算机所有人都开始支持虚拟化技术云计算核心技术剖析,但是其应用范围属于利基和高端). 但是,由于x86体系结构处理器在设计的早期阶段并未考虑虚拟化(x86指令集中的几条指令是VMM需要捕获的敏感指令,但它们不是特权指令. “特权发布”不是导致它们“陷入”“模拟”),因此x86架构CPU不能仅依靠经典的虚拟化方法来实现完全虚拟化.
鉴于x86指令集的局限性,x86的虚拟化实现大致分为两组: 以VMware表示的“完全虚拟化”和以Xen的“准虚拟化”表示的“半虚拟化/半虚拟化”:
1)完全虚拟化

管理程序/ VMM模式. 在来宾操作系统和硬件之间捕获和处理对虚拟机敏感的特权指令是,来宾操作系统无需修改即可运行. 速度根据不同的实现方式而有所不同,但通常可以满足客户的需求. 著名的产品有: KVM,VMware ESX和VMware工作站.
VMware全面虚拟化技术的实现: “陷阱(陷阱)-模拟(仿真)” +“二进制翻译(二进制翻译)”
主要思想是将在VM上执行的Guest OS指令转换为执行期间的x86指令集的子集,其中敏感指令被捕获的指令代替. 翻译过程和指令执行是交织的,不包含敏感指令的用户模式程序无需翻译即可直接执行.
2)半虚拟化
管理程序/ VMM模式. 虚拟机管理程序上运行的客户操作系统已集成了与半虚拟化相关的代码,并且客户操作系统可以与虚拟机管理程序很好地协作以实现虚拟化. 无需重新编译或捕获特权指令,它的性能非常接近物理机. 最经典的产品是Xen. 微软的hyper-v也被归类为半虚拟化.

3)硬件辅助虚拟化(硬件辅助虚拟化)
诸如Intel / AMD的硬件制造商通过硬件化某些完全虚拟化和半虚拟化中使用的软件技术来提高性能. 由于硬件辅助的虚拟化从软件中删除了大量复杂的虚拟化逻辑,因此硬件辅助的虚拟化可以大大简化虚拟化产品的体系结构. 但是,硬件辅助虚拟化并不是唯一的,而是经常用于优化完全虚拟化和半虚拟化的产品. 例如,VMware工作站的6.0版本引入了硬件辅助的虚拟化技术,例如Intel的VT-x和AMD的AMD-V. 用户可以选择是否启用硬件辅助虚拟化模式. 主流的完全虚拟化和半虚拟化产品支持硬件辅助虚拟化,包括KVM,VMware ESX,Xen等.
硬件辅助虚拟化技术消除了操作系统的环形转换问题,降低了虚拟化阈值,无需修改OS内核即可支持任何操作系统的虚拟化,并且受到虚拟化软件供应商的支持. 硬件辅助虚拟化技术已逐渐消除了软件虚拟化技术之间的差异,并已成为未来的发展趋势.
例如,Xen除了提供Domain0(运行已修改的Linux内核)和DomainU PV Guest(运行已修改的内核操作系统)之外,还提供DomainU HVM Guest(已完全虚拟化,无需修改来宾操作系统).
4. 内存虚拟化技术:
背景知识:
1,x86指令集:
x86指令集是由Intel专门为其第一个16位CPU(i8086)开发的. IBM在1981年推出的世界上第一台PC中的CPU-i8088(简化的i8086版本)也使用X86指令. X87芯片系列的数学协处理器添加到计算机中以提高浮点数据处理能力,另外还使用X87指令. 在下文中,将X86指令集和X87指令集统称为X86指令集. 尽管随着CPU技术的不断发展,英特尔一直在不断开发更新的i80386和i80486直到今天. 为了确保计算机可以继续运行过去开发的各种应用程序,以保护和继承丰富的软件资源,所有CPU都继续使用X86指令集. 因此其CPU仍属于X86系列. 由于Intel X86系列和兼容CPU都使用X86指令集,因此形成了当今庞大的X86系列和兼容CPU阵容.
2,CPU
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-282137-1.html
#杨洋2015金投赏##杨洋轻奢young#羊毛携手杨洋