学习虚拟化知识,需要从最基础的概念入手,下面介绍一组名词(文章中虚拟化都是指X86平台的虚拟化技术,以下不再逐一解释):
软件虚拟化
软件虚拟化,简单理解为:使用纯软件来现实虚拟化,vm的操作指令不直接在物理机平台上执行,(例如:qemu)而是由纯软件来模拟执行。(例如:cpu取指,解码和执行等)因为是软件模拟实现虚拟化,所以性能较差。
硬件虚拟化
硬件虚拟化,简单理解为:vm的操作“直接”在物理平台上执行。
硬件虚拟化需要cpu,主板芯片组,bios,和软件的支持,是一套解决方案,其中,intel的cpu虚拟化技术是:Intel VT 。 amd的cpu虚拟化技术是:AMD-V
准虚拟化/半虚拟化
可以理解为软件虚拟化,例如:xen,xen在安装时,修改了宿主机的内核。
全虚拟化
理解为硬件虚拟化,例如:kvm ,硬件平台“接受”虚拟机的指令
文章参考内容:
1.https://www.ibm.com/developerworks/cn/linux/l-cn-vt/
2.kvm虚拟化技术 - 实战与原理分析
ps:
文章为自己理解的内容,如果需要专业的介绍请参考ibm文档和kvm虚拟化实战