根据官方的QEMU 文档:
当用作虚拟器时,QEMU通过直接在主机CPU上执行来宾代码来实现近乎本地的性能。
我的问题是,这种行为与我们称为管理程序(例如VirtualBox、KVM等)的程序有何不同;它们不是也在“主机CPU”上运行“来宾代码”吗?他们还会在哪里运行呢?
如果下面的图像(来源)是正确的,那么QEMU运行的是应用程序(而不是像虚拟机监控程序那样的整个操作系统),而是执行不同架构类型之间的转换(例如,为ARM编写的程序可以在x86上运行)。

鉴于上述情况,一个人要运行的情况是:
( a)用于特定体系结构(例如ARM)的整个操作系统
( b)在具有不同架构(例如amd64)的主机上
两者都需要共存。
QEMU (执行跨架构映射)
和
KVM (充当硬件管理程序)
需要吗?
发布于 2018-08-25 10:12:15
你引用的段落应与文件中的前一段作对照:
当用作机器仿真器时,QEMU可以在另一台机器(例如您自己的PC)上运行OSes和为一台机器(例如ARM板)制作的程序。通过使用动态翻译,它获得了很好的性能。
文档突出了用作仿真器的QEMU之间的区别,这是比较慢的,因为它涉及到二进制代码的转换,而QEMU是用作虚拟器的。
关于图表,它是不完整的。QEMU非常通用,可以单独使用来模拟一个完整的系统,运行一个客户操作系统,或者虚拟化一个完整的系统,再次运行一个客户操作系统,或者在主机操作系统中模拟或虚拟化一个CPU,只运行一个来宾应用程序。它还可以用来模拟用于KVM的设备。
https://unix.stackexchange.com/questions/464769
复制相似问题