2024年6月3日发(作者:)
全虚拟化(Full virtualization), 也称为原始虚拟化技术, 是另一种虚拟化方法. 该模型
使用虚拟机协调客户操作系统和原始硬件(见图2). 这里"协调"是一个关键词, 因为VMM
在客户操作系统和裸硬件之间用于工作协调. 一些受保护的指令必须由Hypervisor(虚拟
机管理程序)来捕获和处理. 因为操作系统是通过Hypervisor来分享底层硬件.
图2. 全虚拟化: 使用Hypervisor分享底层硬件
全虚拟化的运行速度要快于硬件模拟, 但是性能方面不如裸机, 因为Hypervisor需要
占用一些资源. 全虚拟化最大的优点是操作系统没有经过任何修改. 它的唯一限制是操作
系统必须能够支持底层硬件(比如, PowerPC).
老机器上的Hypervisors
一些老的硬件如x86, 全虚拟化遇到了问题. 比如, 一些敏感的指令需要由VMM来处
理(VMM不能设置陷阱). 因此, Hypervisors必须动态扫描和捕获特权代码来处理问题.
半虚拟化
半虚拟化(Paravirtualization)是另一种类似于全虚拟化的热门技术. 它使用
Hypervisor(虚拟机管理程序)分享存取底层的硬件, 但是它的客户操作系统集成了虚拟化
方面的代码. 该方法无需重新编译或引起陷阱, 因为操作系统自身能够与虚拟进程进行很
好的协作.
图3. 半虚拟化: 通过客户操作系统分享进程
上面提到过, 半虚拟化需要客户操作系统做一些修改(配合Hypervisor), 这是一个不
足之处. 但是半虚拟化提供了与原始系统相近的性能. 与全虚拟化一样, 半虚拟化可以同
时能支持多个不同的操作系统.
有这样的疑问:
在半虚拟化的环境中,不能运行未经修改内核的操作系统,那么,cpu不支持vt,在
宿主系统上跑的虚拟环境就可以称为半虚拟化环境了,那么在cpu不支持vt的机器上
vmwera可以运行xp,这个互相矛盾,为什么就可以运行呢?
PV vs. FV
PV(Para-Vritralization)和FV(Full-Vritralization)的差别,主要以guest OS的
硬件仿真程度做区分。
FV:FV是一般较常看到的作法,所有的guest OS完全不会看到实际的硬件为何,只
能使用由Supervisor所提供的所有虚拟硬件,因此,在这种机制下,guest OS动作的性
能一定会大受虚拟接口的影响。另外还有一个特点,就是因为完全仿真的关系,不支持新


发布评论