Answers:
有人可以解释一下有什么不同吗?有性能差异吗?我有什么理由选择一个而不是另一个?
正如您已经解释的其他答案一样,两个项目之间在体系结构上存在一些差异。
粗略地说,在涉及英特尔®VT虚拟机管理程序的情况下,要激活(在汇编中)运行特殊的指令序列来激活虚拟机管理程序,最终以结束VMXON
。这将启用虚拟机监控程序模式。
这项工作的一部分涉及根据虚拟机的扩展页表或AMD等效表来定义虚拟机。这与设置页表(在哪个内存映射位置)的普通任务相似,只是您要对虚拟机的整个内存区域进行设置。以前的VM技术只是为此目的而困住了VM Exits,这实质上就像是花哨的硬件中断。
这如何指代建筑?好了,构建管理程序有两种选择:
构建一个独立的虚拟机管理程序,该虚拟机管理程序将设置虚拟机监视器,然后等待来宾操作系统。通常,它要么包含足够多的自己的操作系统来管理VM,要么支持特权来宾。例如,Xen虚拟机管理程序包括一个具有管理虚拟机管理程序功能的“ Dom0”“来宾”。
将管理程序构建为现有内核的一部分,例如作为内核模块。可以在操作系统生存期内的任何时候(假定具有足够的特权)将代码作为虚拟机监视器安装在Intel VT中,也可以将其删除。这样,系统管理程序代码可以根据需要简单地设置必要的内存空间。
实际上,对于最终用户而言,不同之处在于,如果是第一种管理程序而无需重新引导,则无法卸载它。这是因为它本身就像操作系统一样。Hyper-V的行为是这样的-例如,如果安装了Hyper-V,则无法安装VirtualBox,因为两者都无法共享虚拟机监视器空间(因为Hyper-V已经拥有了)。为了卸载管理程序,您需要重新启动。
简而言之:如果安装了Hyper-V,即使没有运行VM,也将无法使用任何其他虚拟化产品。对于Virtual PC并非如此。
现在,性能。在类似Intel VT的系统上,无论是首先加载操作系统还是虚拟机管理程序,在性能方面几乎没有什么区别,因为这只是CPU限制的区域,如果您已经在使用CPU硬件辅助的虚拟化,则速度会很快反正你可以得到。
在性能方面,虚拟化的差异来自半虚拟化和IOMMU / DMA重映射的使用。简而言之,组织的操作系统内存/ CPU顺序不会像您是否可以有效地虚拟化硬盘,图形卡等东西那样重要。
从此博客帖子中可以很明显地看出,Hyper-V过去在消费者类型的虚拟化方面存在问题:图形,声音等。它们是否仍然是一个问题,但可能值得调查。
Hyper V将提供比Windows Virtual PC更好的性能
http://en.wikipedia.org/wiki/Hypervisor
Robert P. Goldberg将管理程序分为两种类型:[5]
类型1(或本机,裸机)虚拟机管理程序直接在主机的硬件上运行,以控制硬件并管理来宾操作系统。来宾操作系统因此在管理程序之上的另一个级别上运行。
该模型代表了虚拟机体系结构的经典实现。最初的管理程序是测试工具SIMMON和CP / CMS,它们都是1960年代在IBM开发的。CP / CMS是IBM z / VM的始祖。Citrix XenServer,VMware ESX / ESXi和Microsoft Hyper-V虚拟机管理程序是现代的等效工具。
类型2(或托管)虚拟机管理程序在常规操作系统环境中运行。通过虚拟机管理程序层作为不同的第二软件级别,来宾操作系统在硬件之上的第三级别运行。KVM,BHyVe和VirtualBox是类型2虚拟机管理程序的示例。
维基百科清楚地解释了这一点