Full,Para和硬件辅助虚拟化之间有什么区别?


68

我正在研究虚拟化这个话题,问这个问题似乎有点愚蠢,但是我完全不懂基本概念,维基百科确实提供了一些相关信息,但是对我来说理解基本概念还不够好。这个概念将是2到3行,但是我既无法在网上找到它们,也无法在书上找到它们。

如果有人给我这三种类型的基本概念,我会很高兴。我对虚拟化非常了解并且非常了解虚拟化,但是这3种类型...

Answers:


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

  • 完全虚拟化是一种虚拟化,其中来宾操作系统没有意识到它处于虚拟化环境中,因此硬件由主机操作系统虚拟化,因此来宾可以向其认为是实际硬件的设备发出命令,但实际上只是模拟主机创建的硬件设备。

  • 硬件辅助虚拟化是一种完全虚拟化,其中微处理器体系结构具有专门的指令来帮助硬件虚拟化。这些指令可能允许设置虚拟上下文,以便访客可以直接在处理器上执行特权指令而不会影响主机。这种功能集通常称为Hypervisor。如果不存在上述指令,则仍然可以进行完全虚拟化,但是必须通过诸如动态重新编译之类的软件技术来完成,在该技术中,主机可以在客户机中即时编译特权指令,以便能够以非特权方式在虚拟机上运行。主办。

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


3
如前所述,在半虚拟化中,相比于在完全虚拟化的情况下,向虚拟机管理程序创建的伪硬件设备发布硬件命令,来宾知道并向主机OS发出命令。对于没有主机操作系统的类型1虚拟机管理程序,半虚拟化如何发生令我感到困惑。来宾向谁发出硬件命令?
加拉夫·帕萨尔

4
@gauravparashar它将直接向虚拟机管理程序发出命令,就好像它是主机操作系统一样。系统管理程序至少必须具有基本的半虚拟化API,从这个意义上讲,它是一个非常基本的主机OS。
Dougvj

@Dougvj,完全虚拟化是否意味着硬件辅助虚拟化?他们携手并进吗?
Pacerier '16

@Pacerier不,您仍然可以使用动态重新编译(在硬件辅助虚拟化下的最后一句话中说明)进行完全虚拟化
Dougvj 2016年

1
我喜欢您对硬件虚拟化的定义。我到处看,但其他解释对我来说还不够清楚。谢谢!
10110

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.