Full,Para和Hardware辅助虚拟化有什么区别?

时间:2014-01-30 16:52:58

标签: operating-system virtual-machine vmware virtualization

我正在讨论虚拟化的主题,提出这个问题似乎有点傻,但我完全理解了基本概念,维基百科确实提供了一些相关信息,但这对我来说还不够理解基本概念。这个概念将是2到3行,但我既不能在网上找到它们,也不能在书上找到它们。

如果有人给我这三种类型的基本概念,我会很高兴的。我很清楚虚拟化并且理解它很好,但这3种类型......

2 个答案:

答案 0 :(得分:131)

  • Paravirtualization 是虚拟化,其中客户操作系统(正在虚拟化的客户操作系统)知道它是来宾,因此具有驱动程序,而不是发出硬件命令,只需直接向主机操作系统发出命令。这也包括内存和线程管理,通常需要处理器中不可用的特权指令。

  • Full Virtualization 是虚拟化,其中客户操作系统不知道它位于虚拟化环境中,因此硬件由主机操作系统虚拟化以便客户端可以向它认为是实际硬件的命令发出命令,但实际上只是由主机创建的模拟硬件设备。

  • Hardware Assisted Virtualization 是一种完全虚拟化,其中微处理器体系结构具有帮助硬件虚拟化的特殊指令。这些指令可能允许设置虚拟上下文,以便guest虚拟机可以直接在处理器上执行特权指令,而不会影响主机。这样的功能集通常称为 Hypervisor 。如果不存在所述指令,则仍然可以使用完全虚拟化,但必须通过动态重新编译等软件技术来完成,其中主机可以在guest虚拟机中重新编译特权指令以便能够运行主机上的非特权方式。

  • 还有Para虚拟化和完全虚拟化的组合,称为混合虚拟化,其中部分客户机操作系统对某些硬件驱动程序使用半虚拟化,主机使用完全虚拟化来实现其他功能。这通常会在客户端产生出色的性能,而无需客户端完全进行半虚拟化。例如:guest虚拟机对内核中的特权指令使用完全虚拟化,但使用guest虚拟机中的特殊驱动程序对IO请求进行半虚拟化。这样客户操作系统不需要完全半虚拟化,因为这有时不可用,但仍然可以通过为客户实现特殊驱动程序来享受一些半虚拟化功能。

答案 1 :(得分:0)

在硬件辅助虚拟化的情况下,虚拟化设计在。指令集提供了分区主机的指令。以英特尔的VT-x技术为例。这样管理程序就可以直接使用硬件而无需使用任何操作系统来访问它并提供完全虚拟化