是否可以在模拟器内运行虚拟机?

是否可以在模拟器内运行虚拟机?

据我所知,虚拟机利用了 CPU 提供的一项技术;这项技术称为 VT,即某些 Intel 处理器设计中的“虚拟化技术”。我不知道它是如何工作的,也不知道虚拟化程序究竟如何使用它,但我想知道这一点:

假设我在 Bochs(x86-64 仿真器或类似程序)中运行 Windows 7。在 Windows 7 中,我下载了 VirtualBox、VMware 等。它们可以运行吗?如果主机架构不支持虚拟机,虚拟机可以在虚拟机中的客户机仿真操作系统上运行吗?会不会有什么问题?

我不知道是否有任何 x86-64 模拟器支持英特尔的虚拟功能,但假设有一个模拟器支持,那么理论上这有多可行?

注意:不是虚拟机中的虚拟机;而是模拟器中的虚拟机,它有一个主机 CPU,不支持 VT

可以这样想:程序模拟 VT,而 VT 也模拟 x86-64/等。客户操作系统在其上运行,VirtualBox/等可以被“欺骗”在模拟器平台内使用模拟的虚拟技术,但使用真实的主机 CPU这不支持啊,能模拟虚拟化吗?

答案1

从理论上来说这应该是可能的。

逻辑表明,如果模拟器完美地模拟整个 x64 环境,包括 Vt-x 功能,它应该与真实环境没有区别,从而支持在模拟器上运行的操作系统内运行虚拟机。

但性能可能会很糟糕。

我不知道是否有任何真正的模拟器具有此功能。
我强烈怀疑英特尔有一个供内部使用的模拟器,他们可以将其用作“虚拟 CPU”来模拟/测试/验证新指令,然后再使用这些指令制造任何真正的硬件。

答案2

它确实可以工作,但是速度会非常慢。

首先,Boshs 是一个虚拟机,就像 VirtualBox 或 VMware Player 一样。不同之处在于它模拟了 100% 的硬件。虚拟机只是一台非物理计算机。

它不提供任何 CPU 虚拟化功能

虽然 Boshs 确实模拟了本身提供虚拟化支持的 CPU,但 BoshS 并没有在其模拟中包含该功能。

还值得注意的是,在 Boshs 中,您必须从可用功能列表中指定希望 CPU 具有哪些功能。请参阅:http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html

并非所有虚拟机程序都要求虚拟化支持。Virtual PC 的某些版本无需虚拟化支持即可运行,VirtualBox 也是如此。

答案3

您所说的 VT 可能并非所有系统都支持,但它们运行 VMware。如何运行?它们使用软件处理,我的意思是程序充当处理 VM 数据的角色。

此外,VT 是一种在虚拟机中直接使用硬件的技术,如果您的主板支持它,那么您在内部虚拟机上应该有更快的速度(我的意思是第二个)。

关于问题,不,我认为不会出现任何问题,只是速度是个问题......

相关内容