前一篇基础概念篇,主要介绍虚拟化技术的发展历程、基础概念、关键指标等几个方面,
本篇开始着重于虚拟化平台Hypervisor本身相关的技术介绍。
>虚拟化软件结构层次
下图是传统非虚拟化软件结构层次与虚拟化软件结构层次的对比,撇开虚拟化环境下同一物理节点上可运行多个OS的差别,最大的差别就是虚拟化环境下,在OS和硬件之间多了一层Hypervisor。Hypervisor即是所谓的虚拟机管理平台,有些文档也称为VMM(virtual machine monitor),但本质上是一个东西。还有一些平台,习惯于将Hypervisor称为Host OS,相应的虚拟机OS则成为Guest OS。这些是最基础的名词概念。
>虚拟化平台分类
在虚拟化的环境下,对操作系统来说,最大的差别在于无法直接访问硬件(当然有例外,后文会逐个展开并提及),所有硬件资源都是由Hypervisor管理并分配给各个OS的。对OS来说,这一点变化是比较关键的。在OS内核里,涉及到大量跟具体CPU架构、外设器件相关的代码(汇编指令、驱动代码等),当把一个OS从原始的硬件环境移植到Hypervisor提供的虚拟硬件环境后,这个OS还能运行吗?答案当然是肯定的,但解决方案有多种。而根据解决方案的不同,Hypervisor平台又被分为两类:半虚拟化平台和全虚拟化平台。