虚拟机:QEMU、VirtualBox

one*_*eat 1 virtualbox qemu virtual-machine

当我在 i5 笔记本电脑上使用虚拟机时,它是模拟每条指令还是正常运行?

速度降低了多少?特别是我对QEMUVirtualBox感兴趣;它们是如何工作的?他们会毫无问题地运行游戏吗?

Hen*_*nes 5

这取决于您的虚拟化软件。基本上你有三个选择:

  1. 模拟整个 PC,包括 CPU。
  2. 使用主机的硬件按原样运行软件,但拦截一些系统调用和指令。
  3. 修改软件,使其在主机硬件上运行,但会被 2) 拦截的指令现在被其他例程替换。

所有三个工作。这三个都在使用中。三者都有不同的性能特点。

1)模拟
这将永远是最慢的选择。它有两个优点:

  • 您可以模拟完全不同的主机(例如,在 AMD64 上模拟基于 ARM 的计算机)。
  • 您不需要任何硬件支持。

2)拦截系统调用

这个答案主要基于 AMD64。现代 x86 CPU 具有多个具有不同权限的级别。这些被称为。VM 软件接管环 0(具有最多权限的环)并获得在计算机上执行任何操作的权利。计算机(主机和虚拟机)上的软件不会注意到这一点。使用这些权限可确保多个操作系统不会相互干扰。

结果,常规代码全速运行(dnetc 测试的结果是虚拟机速度的 99%)。执行系统调用的代码会被拦截和修改,因此速度要慢得多。通常,这样做的最终结果是速度损失百分之几。

3)修改代码

您可以提前修改软件,而不是实时拦截系统调用。这样你的代码可以稍微快一点,但你需要提前修改软件。


Especially I am talking about QEMU and virtualbox, how are they?

我有一个朋友,他是程序员。她查看了 QEMU 的代码。建议的建议是不要触摸它。曾经。甚至没有 10 英尺的杆子。QEMU 使用开箱即用的配置,但如果您不使用默认设置,则经常会失败。它分配资源并且从不检查是否成功......我可以继续,但提到的越少越好。

Virtualbox:我用过一次 virtualbox。有效。它的 Windows 版本有一个很好理解的界面。我没有测试任何性能,也没有玩任何游戏。

Will it run games without problems?

我运行的唯一游戏是在 Vmware(播放器)下。这对于 2D 游戏来说已经足够好了。3D 游戏通常会使我的计算机(虚拟机和主机)崩溃。