![是否可以在模拟器内运行虚拟机?](https://linux22.com/image/1424187/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%A8%A1%E6%8B%9F%E5%99%A8%E5%86%85%E8%BF%90%E8%A1%8C%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%9F.png)
据我所知,虚拟机利用了 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 是一种在虚拟机中直接使用硬件的技术,如果您的主板支持它,那么您在内部虚拟机上应该有更快的速度(我的意思是第二个)。
关于问题,不,我认为不会出现任何问题,只是速度是个问题......