QEMU 作为虚拟机管理程序的行为

QEMU 作为虚拟机管理程序的行为

据QEMU官方介绍文档:

当用作虚拟器时,QEMU 通过直接在主机 CPU 上执行来宾代码来实现接近本机的性能。

我的问题是这种行为与我们称为虚拟机管理程序的程序(例如 VirtualBox、KVM 等)有何不同?他们不是也在“主机CPU”上运行“来宾代码”吗?他们还会在哪里运行它?

更新:

如果出现下图(来源)是正确的,那么事实证明 QEMU 运行应用程序(而不是像虚拟机管理程序这样的整个操作系统),但在不同架构类型之间执行转换(例如,为 ARM 编写的程序可以在 x86 上运行)

在此输入图像描述

鉴于上述情况,运行的情况是:

a) 针对特定架构的完整操作系统(例如ARM)

b) 在具有不同架构的主机上(例如 amd64)

两者需要共存

QEMU(执行跨架构映射)

KVM(充当硬件管理程序)

需要吗?

答案1

您引用的段落应与文档中的前一段进行对比:

当用作机器模拟器时,QEMU 可以在另一台机器(例如您自己的 PC)上运行为一台机器(例如 ARM 板)制作的操作系统和程序。通过使用动态翻译,它取得了非常好的性能。

该文档强调了用作模拟器的 QEMU 与用作虚拟器的 QEMU 之间的区别,模拟器速度较慢,因为它涉及翻译二进制代码。

从图表来看,它是不完整的。 QEMU 用途广泛,可以单独使用来模拟完整系统,运行来宾操作系统,或者虚拟化完整系统,再次运行来宾操作系统,或者在主机操作系统中模拟或虚拟化 CPU,仅运行来宾应用程序。它还可用于模拟与 KVM 一起使用的设备。

相关内容