虚拟机和虚拟机监控程序之间的区别


29

如果您使用Google术语“ hypervisor”,则会得到无穷无尽的定义,这些定义指出虚拟机管理程序也称为虚拟机监视器虚拟机管理器,并且它是硬件虚拟化的一种形式。但是,对于VM及其概念而言,这是全新的,对我来说这是一个模糊的定义。

那么,虚拟机与其虚拟机管理程序之间的区别和/或关系是什么?有人可以举一个具体的例子吗?


请参阅有关管理程序的维基百科文章。有几种不同的类型,这可能是您感到困惑的部分原因。 en.wikipedia.org/wiki/Hypervisor
Zoredache

Answers:


17

系统管理程序是运行虚拟机的设备或软件。它通常负责分配资源,提供虚拟机(“来宾”)与主机系统以及任何管理软件之间的接口。

因此,如果您使用VMware Workstation运行Windows 7虚拟机,则VMware Workstation是虚拟机管理程序。


5
他们为什么不能在参考文档中这么说呢?!谢谢!
pnongrata 2011年

10
他们不想让您太过轻松,否则您将无需支付支持合同的费用。;)
编码大猩猩

那么... VMM和Hypervisor有什么区别?
allyourcode 2014年

@allyourcode取决于您在说哪个“ VMM”以及在什么情况下。
编码大猩猩

极好的答案,被赞成。但是软件模拟器呢?我们可以说模拟器(DOSBox)是运行虚拟机的软件吗?
约翰cj

5

检查此链接。 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

这是对现有操作系统术语的扩展,它是种子/坚果隐喻的几种替代之一。 用户程序由主管程序控制,并在非虚拟系统中停止运行。通过虚拟化,该主管被反过来,通过受控(或监控或管理)管理程序的程序。

所有这些程序都是软件。该虚拟机是一台机器的借口是,管理员和用户体验的程序运行自己的。从内部看起来像硬件。


3
具有讽刺意味的是,这是题外话,如果我没记错的话,拉丁文的“ super”和希腊语的“ hyper”源自相同的原始词,含义相同。德语的“ ueber”是另一个兄弟。因此,“主管”和“超级主管”实际上是同一个词,除了一个人全部是拉丁文,而另一个人是一半拉丁文,一半希腊文。:-)
Andrew J. Brehm

2
但是实际上,对于我们大多数人来说,术语都是希腊语。
Daniel R Hicks

1

Don Skiba关于虚拟机管理程序的历史记录

1966年,我在IBM公司工作,当时我们试图安装新的System 360s。您可能会想到,将旧的1401、1440、1410、7080、7090模型中的所有“旧代码”转换成您将要看到的最大混乱。在360型号65上,有一个用于几个旧机器的仿真器。实际上,除75号模型外,所有360模型都是360指令集的仿真器。65型流行的是IBM 7080的仿真器。但是,您必须将计算机专用于360模式或7080模式。那并不是让我们的客户感到非常高兴。

事实证明,模型65上有一些特殊的寄存器处于非活动状态,但在模型67上处于活动状态,用于时间共享,最终用于虚拟操作系统CMS。我说服了模型65的工程师,我们可以使用这些寄存器在内存下半部分运行的程序与内存上半部分运行的程序之间进行交换,并且任何一个都可以在360或7080模式下运行。我们只需要一个“小”代码即可进行交换,模式设置和资源(I / O)分配。我说服了费城的一位系统工程师来编写代码,该系统工程师有一位急需此功能的客户。当时我们为代码扔了很多名字。 我建议使用“管理程序”是合适的,因为在360之前,没有“操作系统”,而先前的系统都具有“管理程序”。 因此,“ hypervisor”似乎很合适,并且名称卡住了。

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.