QEMU 作为管理程序的行为

pka*_*mol 2 virtual-machine emulation qemu

根据官方 QEMU文档

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

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

更新

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

在此处输入图片说明

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

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

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

两者都需要共存

QEMU(执行跨架构映射)

KVM(充当硬件管理程序)

需要吗?

Ste*_*itt 6

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

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

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

关于图,它是不完整的。QEMU 非常通用,可以单独使用来模拟完整系统、运行来宾操作系统,或虚拟化完整系统,再次运行来宾操作系统,或者模拟或虚拟化主机操作系统中的 CPU,仅运行来宾应用程序. 它还可用于模拟与 KVM 一起使用的设备。