虚拟机:QEMU、VirtualBox

虚拟机:QEMU、VirtualBox

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

速度降低了多少?我特别感兴趣的是量子计算单元虚拟盒;它们是如何工作的?它们能顺利运行游戏吗?

答案1

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

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

这三种方法都可以。这三种方法都在使用中。这三种方法都有不同的性能特点。

1)仿真
这永远是最慢的选项。它有两个优点:

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

2)拦截系统调用

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

因此,常规代码以全速运行(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 (player) 下运行的。对于 2D 游戏来说,它运行得很好。3D 游戏通常会使我的计算机崩溃(Vm 和主机)。

答案2

在 VirtualBox 中,如果您启用了扩展功能和硬件虚拟化,则会将处理器/CPU 的原生支持功能公开给客户操作系统。性能取决于您分配的 RAM 数量和 CPU 核心数量。虽然分配固定数量的 RAM 和 CPU 核心不会一直使用,因为这取决于您在虚拟机或客户操作系统中运行的内容。

假设我分配了 1 GB 的 RAM 和一个 CPU 核心。然后我在客户操作系统上运行一些密集型应用程序,例如MATLAB,应用程序将使用所有可用资源。您甚至可以监视哪些资源被消耗任务管理器

通常情况下,游戏(某些)应该根据其要求工作,特别是在图形部门,因为游戏往往会使用大量的视频内存,它会处理大量的数据,所以如果你想在虚拟机上使用它,游戏就是题外话。

相关内容