虚拟化的概念
虚拟化是指对计算机资源的抽象和模拟,计算机资源是指cpu、内存、硬盘、网络,其中虚拟和抽象实现的方法有平台虚拟化、资源虚拟化(SDN针对网络做的虚拟化)、应用程序虚拟化(应用程序与操作系统解耦和,无需本地安装应用程序,通过web端就可以运行应用程序)。虚拟化的根本目的是实现资源的充分调用,云计算的底层技术依靠于虚拟化。
平台虚拟化
全虚拟化
半虚拟化
硬件辅助虚拟化
符合虚拟化架构的三个充分条件
效率性
客户机的指令应该由硬件直接执行而无虚拟化管理程序参与。
资源控制
虚拟化管理程序(VMM)对系统资源有完全的控制能力和管理权限,包括资源的分配、监控和回收。
等价性
一个运行于虚拟机上的程序,其行为应与直接运行于物理机上的同程序的行为基本一致,只允许细微的差异,比如在系统时间方面。
VMM 虚拟机监控器
运行在物理服务器和操作系统之间的中间软件层。允许多个操作系统和应用共享一套基础的物理硬件,它可以协调访问--- 服务器上的所有物理设备和虚拟机。
CPU虚拟化
目的是GuestOS里的指令能够正常执行(资源控制),然后还要保证性能和效率(效率性),尽可能的接近物理机(等价性)。
X86支持虚拟化的技术变革
CPU全虚拟化是指虚拟机模拟了完整的底层硬件,使得为原始硬件设计的操作系统或其他系统软件完全不做任何修改就可以在虚拟机中运行了。特权级(在x86的cpu中存在四个特权级指令rang0-rang3,其中rang0执行特权敏感指令,普通进程和非特权指令运行在rang3中,rang1和rang2运行其他的驱动程序,通过特权级压缩和二进制