![虚拟机和管理程序之间的区别](https://linux22.com/image/1290347/%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%92%8C%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BA%8F%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
如果你在 Google 上搜索“虚拟机管理程序”,你会得到无数的定义,这些定义表明虚拟机管理程序也称为虚拟机监视器或虚拟机管理器,并且它是一种硬件虚拟化形式。但是,由于我对虚拟机及其概念还不熟悉,所以这个定义对我来说比较模糊。
那么,虚拟机和虚拟机管理程序之间有什么区别和/或关系?有人能举一个具体的例子吗?
答案1
虚拟机管理程序是运行虚拟机。它通常负责分配资源,提供虚拟机(“客户机”)和主机系统之间的接口以及任何管理软件。
因此,如果您使用 VMware Workstation 运行 Windows 7 虚拟机,则 VMware Workstation 就是虚拟机管理程序。
答案2
检查此链接。 http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx
答案来自 Ben Armstrong 的虚拟化博客
“VMM”实际上有两个含义。第一个是“虚拟内存管理器”——这是 Windows 操作系统的一部分,与计算机虚拟化无关——与操作系统内存管理有关。这不是我今天要讨论的内容 :-)
第二个含义是“虚拟机监视器”。有许多不同的程序和实现使用“虚拟机监视器”这个绰号。用最简单的术语来说 - VMM 是负责监控和执行其负责的虚拟机策略的软件。这意味着 VMM 跟踪虚拟机内部发生的所有事情,并在必要时提供资源、将虚拟机重定向到资源或拒绝访问资源(不同的 VMM 实现提供或重定向资源到不同的级别 - 但这是另一天讨论的话题)。
传统上有两种类型的 VMM。
II 型 VMM 运行在托管操作系统之上,然后生成更高级别的虚拟机。II 型 VMM 的示例包括 JavaVM 和 .Net 环境。这些 VMM 监视其虚拟机并将资源请求重定向到托管环境中的适当 API(中间进行一定程度的处理)。
I 型 VMM 是直接在硬件上运行的 VMM,无需托管操作系统。I 型 VMM 也称为“虚拟机管理程序” - 因此 VMM 和虚拟机管理程序之间唯一真正的区别在于运行位置。两者提供的功能是相同的。I 型 VMM 的示例包括 Amdahl 和 IBM 等公司提供的大型机虚拟化解决方案,以及现代计算机上的 VMware ESX、Xen 和 Windows 虚拟化等解决方案。
答案3
这是现有操作系统术语的扩展——它是种子/坚果的比喻。 用户程序由导师程序,在非虚拟系统中,事情就到此为止了。通过虚拟化,导师反过来,它又被一个虚拟机管理程序程序。
所有这些程序都是软件。虚拟机是监控程序和用户程序运行的机器的假象。从内部看,它就像硬件一样。
答案4
1966 年,我在 IBM 工作,当时我们正试图安装新的 System 360。您可以想象,从旧的 1401、1440、1410、7080、7090 型号转换所有“旧代码”是您所见过的最大麻烦。在 360 型号 65 上,有一个用于几台旧机器的模拟器。实际上,除 75 型号外,所有 360 型号都是 360 指令集的模拟器。65 型号流行的模拟器是 IBM 7080 的模拟器。但是,您必须将机器专用于 360 模式或 7080 模式。这让我们的客户非常不满意。
事实证明,65 型机上有一些特殊寄存器处于非活动状态,但在 67 型机上却处于活动状态,用于时间共享,最终用于虚拟操作系统 CMS。我说服了 65 型机的工程师,我们可以使用这些寄存器在内存下半部分运行的程序与内存上半部分运行的程序之间进行交换,并且任何一半都可以在 360 或 7080 模式下运行。我们只需要一个“小”代码来进行交换、模式设置和资源 (I/O) 分配。我说服了费城的一位系统工程师编写代码,他的客户迫切需要此功能。当时我们为代码想了很多名字。 我建议“虚拟机管理程序”可能更合适,因为在 360 之前,没有“操作系统”,而之前的系统都有“主管”。 因此,“虚拟机管理程序”看起来很合适,并且这个名称就保留了下来。