Operating system 完全虚拟化、准虚拟化和硬件辅助虚拟化之间有什么区别?

Operating system 完全虚拟化、准虚拟化和硬件辅助虚拟化之间有什么区别?,operating-system,virtual-machine,vmware,virtualization,Operating System,Virtual Machine,Vmware,Virtualization,我正在讨论虚拟化的话题,问这个问题似乎有点傻,但我完全被基本概念吸引住了,维基百科确实提供了一些相关信息,但它不足以让我理解基本概念。这个概念将是2到3行,但我既不能在网上找到它们,也不能在书上找到它们 如果有人告诉我这三种类型的基本概念,我会很高兴。我很了解虚拟化,也很了解它,但这三种类型 是一种虚拟化,在这种虚拟化中,来宾操作系统(被虚拟化的操作系统)知道它是来宾操作系统,因此具有驱动程序,这些驱动程序不发出硬件命令,而直接向主机操作系统发出命令。这还包括内存和线程管理,这通常需要处理器中

我正在讨论虚拟化的话题,问这个问题似乎有点傻,但我完全被基本概念吸引住了,维基百科确实提供了一些相关信息,但它不足以让我理解基本概念。这个概念将是2到3行,但我既不能在网上找到它们,也不能在书上找到它们

如果有人告诉我这三种类型的基本概念,我会很高兴。我很了解虚拟化,也很了解它,但这三种类型

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

  • 是一种虚拟化,在这种虚拟化中,来宾操作系统不知道自己处于虚拟化环境中,因此硬件由主机操作系统虚拟化,以便来宾可以向其认为是实际硬件的设备发出命令,但实际上只是由主机创建的模拟硬件设备

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

  • 还有一种称为混合虚拟化的准虚拟化和完全虚拟化的组合,其中来宾操作系统的某些部分对某些硬件驱动程序使用准虚拟化,主机对其他功能使用完全虚拟化。这通常会在客户机上产生优异的性能,而无需将客户机完全半虚拟化。这方面的一个例子是:客户机对内核中的特权指令使用完全虚拟化,而对使用客户机中特殊驱动程序的IO请求使用半虚拟化。通过这种方式,来宾操作系统不需要完全准虚拟化,因为这有时不可用,但仍然可以通过为来宾实现特殊的驱动程序来享受一些准虚拟化功能


在硬件辅助虚拟化的情况下,虚拟化是在中设计的。指令集提供对主机进行分区的指令。以Intel的VT-x技术为例。因此,虚拟机监控程序直接与硬件协同工作,而无需使用任何操作系统来访问硬件,并在准虚拟化中提供完整的虚拟化

,正如您所提到的,与在完全虚拟化的情况下向虚拟机监控程序创建的伪硬件设备发出硬件命令相比,客户机知道并向主机操作系统发出命令。对于没有主机操作系统的1型虚拟机监控程序,半虚拟化是如何发生的,我感到困惑。来宾向谁发出硬件命令?@gauravparashar它将直接向虚拟机监控程序发出命令,就像它是一个主机操作系统一样。虚拟机监控程序必须至少有一个基本的准虚拟化API,从这个意义上说,它是一个非常基本的主机操作系统。@Dougvj,完全虚拟化是否意味着硬件辅助虚拟化?它们是齐头并进的吗?@Pacerier不,您仍然可以使用动态重新编译(在硬件辅助虚拟化的最后一句中解释)来实现完全虚拟化。我喜欢您对硬件虚拟化的定义。我到处找,但其他解释对我来说不够清楚。谢谢