QEMU riscv32-softmmu,softmmu是什么意思?

QEMU riscv32-softmmu, what does the softmmu mean?

'softmmu' 是否意味着虚拟机有一个线性地址 space 可用于机器模式和用户模式?或者它是否具有一些通过软件而不是底层处理器实现的虚拟内存功能?或者它可能意味着完全不同的东西?

-softmmu 作为 QEMU 目标名称中的后缀表示 "complete system emulation including an emulated MMU, for running entire guest OSes or bare metal programs"。它与QEMU的-linux-用户模式相对,即"emulates a single Linux binary only, translating syscalls it makes into syscalls on the host"。构建 foo-softmmu 目标将为您提供 qemu-system-foo 可执行文件;构建 foo-linux-user 会给你一个 qemu-foo 可执行文件。

所以 -softmmu 模拟的 CPU 应该提供真实访客 CPU 的硬件 MMU 提供的所有设施,这通常意味着可以通过访客代码配置的多个地址空间设置页表并启用 MMU。