Full,Para和Hardware辅助虚拟化有什么区别?
我是计算机科学的学生,经历了虚拟化这个话题,问这个问题似乎有点傻,但是我完全理解了这个基本概念,维基百科确实提供了一些相关的信息,但对我来说还不够了解基本概念。 这个概念将是2到3线,但我既不能在网上find它们,也不能在书上find它们。 如果有人给我这三种基本概念,我会很高兴。 我非常了解虚拟化并了解它,但是这三种types…谢谢。
-
半虚拟化是客户操作系统(被虚拟化的客户操作系统)意识到它是访客的虚拟化,并且相应地具有驱动程序,而不是发布硬件命令,直接向主操作系统发出命令。 这也包括内存和线程pipe理,这通常需要在处理器中不可用的特权指令。
-
完全虚拟化是虚拟化,其中客户操作系统不知道其处于虚拟化环境中,因此主机操作系统对硬件进行虚拟化,使得客户可以向其认为是实际硬件的命令发出命令,但实际上只是模拟由主机创build的硬件设备。
-
硬件辅助虚拟化是一种完全虚拟化,其中微处理器体系结构具有特殊指令来帮助硬件虚拟化。 这些指令可能允许设置虚拟上下文,以便guest虚拟机可以直接在处理器上执行特权指令,而不会影响主机。 这样的function集通常被称为pipe理程序 。 如果所述指令不存在,则完全虚拟化仍然是可能的,然而它必须通过诸如dynamic重新编译之类的软件技术来完成,其中主机在客户机中的特权指令中重新编译,以便能够以非特权方式在主办。
-
还有Para Virtualization和Full Virtualization的组合,称为混合虚拟化( Hybrid Virtualization) ,其中部分客户操作系统使用特定硬件驱动程序的半虚拟化,主机使用完全虚拟化来实现其他function。 这通常在客户端上产生出色的性能,而不需要客户端完全半虚拟化。 例如:guest虚拟机使用完全虚拟化来处理内核中的特权指令,而使用guest虚拟机中的特殊驱动程序进行IO虚拟化。 这样,客户操作系统不需要完全半虚拟化,因为有时这个操作系统不可用,但是通过为客户实现特殊的驱动程序仍然可以享受一些准虚拟化function。
在硬件辅助虚拟化的情况下,虚拟化被devise成英寸指令集提供分区主机的指令。 以Intel的VT-x技术为例。 这样,pipe理程序就可以直接使用硬件,而无需使用任何操作系统来访问它,并提供完整的虚拟化