半虚拟化与全虚拟化差别简述

全虚拟化

Hypervisors 通过一个仿真硬件层为其上的每个 Guest 操作系统(虚拟机)仿真出一个具有常用硬件设备的标准服务器,当一个运行的 Guest 系统试图用特权指令控制硬件时,hypervisor 会将真实的硬件隐藏起来,并仿真一个硬件设备给 Guest 系统,从而使得 Guest系统无需修改代码就可以安全地访问硬件。该技术使得 Guest 系统无法任何修改就可在不支持Intel VT/AMD-V的 CPU 上运行,但该技术的复杂性也降低了系统的性能。

全虚拟化 原理示意图:

半虚拟化

Guest 系统在访问真实硬件时是重用当前系统的驱劢,而丌是通过仿真的硬件实现的。Guest 系统和 hypervisor 交互是通过一个高效、底层的的 API(hypercall API)来实现的,这使得 hypervisor 和 Guest 系统可以共同最优化地使用底层的硬件和 I/O,从而可获得极高的运行性能。

半虚拟化 原理示意图:

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注