"xx-softmmu"和"xx-linux-user"有什么区别和关系?

What is the difference and relationship between "xx-softmmu" and "xx-linux-user"?

从源代码构建 qemu 时,我发现对于每个 CPU 体系结构,目标列表都有 2 个选项:xx-softmmuxx-linux-user。例如:

x86_64-softmmu
x86_64-linux-user

我无法搜索两个选项之间的区别。谁能介绍一下它们的区别和关系吗?

简单来说,xxx-softmmu会编译qemu-system-xxx,这是xxx架构的仿真机(System Emulation)。当它重置时,起点将是该架构的重置向量。而 xxx-linux-user,编译 qemu-xxx,它允许你在 xxx 架构(用户模式仿真)中 运行 用户应用程序。它将寻找用户应用程序的主要功能,并从那里开始执行。

https://en.wikipedia.org/wiki/QEMU#Operating_modes