pka*_*mol 2 virtual-machine emulation qemu
根据官方 QEMU文档:
当用作虚拟器时,QEMU 通过直接在主机 CPU 上执行来宾代码来实现接近本机的性能。
我的问题是这种行为与我们称为管理程序的程序(例如 VirtualBox、KVM 等)有何不同?他们不是也在“主机 CPU”上运行“访客代码”吗?他们还会在哪里运行它?
更新:
如果下图(源)是正确的,那么事实证明 QEMU 运行应用程序(而不是像管理程序这样的整个操作系统),但在不同架构类型之间执行转换(例如,为 ARM 编写的程序可以在 x86 上运行)
鉴于上述情况,运行的情况是:
a) 特定架构(例如 ARM)的整个操作系统
b) 在具有不同架构的主机上(例如 amd64)
两者都需要共存
QEMU(执行跨架构映射)
和
KVM(充当硬件管理程序)
需要吗?
您引用的段落应与文档中的上一段进行对比:
当用作机器模拟器时,QEMU 可以在另一台机器(例如您自己的 PC)上运行为一台机器(例如 ARM 板)制作的操作系统和程序。通过使用动态翻译,它实现了非常好的性能。
该文档强调了用作模拟器的 QEMU 与用作虚拟器的 QEMU 之间的区别,后者较慢,因为它涉及转换二进制代码。
关于图,它是不完整的。QEMU 非常通用,可以单独使用来模拟完整系统、运行来宾操作系统,或虚拟化完整系统,再次运行来宾操作系统,或者模拟或虚拟化主机操作系统中的 CPU,仅运行来宾应用程序. 它还可用于模拟与 KVM 一起使用的设备。