首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非虚拟机管理程序虚拟化与Type2虚拟机管理程序

非虚拟机管理程序虚拟化与Type2虚拟机管理程序
EN

Stack Overflow用户
提问于 2011-04-29 00:25:30
回答 4查看 4.3K关注 0票数 1

根据stackoverflow.com here和另一个参考here上的标记答案,我理解为:

虚拟机管理程序虚拟化=低于操作系统和硬件虚拟化,其中硬件旨在支持虚拟化

非虚拟机管理程序虚拟化=在操作系统(如应用程序软件)之上,即纯粹的软件虚拟化

但我们也有Type1和Type2 classifications for hypervisors,在我看来Type2是纯粹的软件虚拟化……那么,这是否意味着非虚拟机管理程序虚拟化等同于类型2虚拟机管理程序,或者是否存在一些细微的差异?

或者,这些术语都是松散定义的?

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2013-06-01 11:48:00

在我看来,Type2是纯粹的软件虚拟化

不要混淆“类型1与类型2”和“硬件与软件”虚拟化。事实上,在硬件和软件之间实际上有一个中间地带:有全硬件(HVM)、“部分”硬件(PVM)和纯软件(SW)。

我将尝试通过扩展所有6个组合来澄清:

Type1+ Full Hardware ( HVM ) -这允许Xen HVM之类的虚拟机管理程序引导未修改的来宾操作系统。这实际上很慢,因为虚拟机管理程序必须解码来宾操作系统试图发送到硬件的“电报消息”。(即,写入磁盘驱动器涉及在位置0xblahblah中重复存储字节。)

Type1+ Paravirtualization (PVM) -这是当您稍微修改来宾操作系统以直接调用虚拟机管理程序来执行某些任务时,例如磁盘I/O。这更快,因为来宾只需说“这里,写入这页字节”,而不必对每个字节执行(虚拟化) I/O。当你安装特殊的驱动程序时,你知道你是在做PVM。当然,有时操作系统已经内置了虚拟驱动程序。例如,任何现代的Linux内核都会在启动时自动切换到PVM模式,当它检测到自己在Xen、KVM、UML等下运行时。

类型1+纯软件(SW) -我不确定它是否存在,但它不会那么难构建。由于软件仿真速度很慢,因此启动真正的操作系统并运行Type2的开销并不是什么大问题。

Type2+全硬件(HVM) -这允许您在VirtualBox或KVM下引导未修改的Windows。您知道这是类型2,此时您可以重启所有来宾系统,同时仍然在后台运行MP3s :)

Type2+ Paravirtualization (PVM) -每当您安装来宾驱动程序,或者在VirtualBox/KVM下引导现代Linux内核时,都会发生这种情况。

类型2+纯软件(SW) - Bochs和Qemu的早期版本。(后面的版本实际上也有硬件辅助模式。)你可以说它们是“纯软件”,因为它们允许你运行通常没有它就不能运行的软件。(例如,我在ARM处理器上的Bochs下运行过Windows95,并在Qemu下的x86上启动了一个ARM发行版。)

还有另一个主题与上面的主题不同:

容器技术。像Docker/Rkt/LXD这样的容器不适合上表。容器中的应用程序是以普通方式调用内核的普通程序,不涉及Hypervisor。

它只是容器使用cgroup和命名空间的内核特性来使应用程序“感觉”像在VM中一样。每个容器都有一个系统的“分区”视图:它自己的文件系统,它自己的用户in,它自己的进程in,它自己的主机名+ IP地址等等。但是从外部看,你可以看到所有容器中的所有进程都有“ps”。

票数 3
EN

Stack Overflow用户

发布于 2011-04-29 03:12:51

在我看来,非Hypervisor虚拟化指的是一个虚拟化层,它运行的不是它上面的OS --最常见的是虚拟化其他操作系统的用户级环境。例如,WINE项目是非虚拟机管理程序虚拟化--它允许在linux (或其他)主机上运行win32程序。不会尝试运行实际的Windows操作系统,也不会为虚拟化的操作系统模拟“裸”硬件。相反,虚拟层直接为windows提供用户级抽象和系统调用。

与此形成对比的是,虚拟机管理程序可以是类型1(在裸机上运行)或type2 (在操作系统上运行),它提供硬件级别的抽象,您可以在其上运行整个操作系统。

票数 2
EN

Stack Overflow用户

发布于 2011-04-29 12:59:49

根据定义,虚拟机管理程序模拟硬件。(这可能是物理上存在的,也可能不存在)-它也可以虚拟化一些。

虚拟化拦截调用并将其重定向到其他地方。

这是两个不同但又相互关联的主题。

Type1虚拟机监控程序在“裸机”上运行,位于硬件和虚拟操作系统之间(虚拟机监控程序本身就是操作系统)。例如,VMWare ESXCitrix XenServerMicrosoft Hyper-V

2型虚拟机管理程序在现有操作系统上运行,可支持硬件或软件虚拟化。例如QEmuBochs)都模拟整个CPU,甚至可选地模拟不同的CPU架构。这两种虚拟机管理程序都是类型2虚拟机管理程序,但由于所需的仿真,它们的性能开销很大。

VMware Workstation/Server/Player/FusionParallelsVirtualbox都是支持的类型2虚拟机管理程序的示例-这意味着不需要仿真CPU指令,CPU指令可以直接通过,而不需要仿真或转换-如果处理器支持它,则可以有效地运行而不会降低性能。

接下来是非虚拟机管理程序虚拟化,它(实际上)是应用程序虚拟化。硬件本身根本没有以任何方式被仿真,虚拟化层只是拦截某些系统调用并对其进行虚拟化。这一类别的示例包括VMWare ThinappMicrosoft App-V等。Windows Vista本身会将某些注册表和磁盘写入用户没有写入权限的区域。Vista中的这种虚拟化对于与许多遗留应用程序的向后兼容至关重要。

最后,我们有了纯模拟器--这里没有发生虚拟化。在这一类中,我们有WINE,在某种程度上也有Cygwin。此外,由于没有虚拟化,只有硬件仿真,所以Bochs也属于这一类,也是Type2虚拟机管理程序。DOSEMU是另一个适合这里的。

我相信我错过了很多例子,但是

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5821878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档