我是一名学生,正在尝试在用户模拟模式下在 MINGW32 上编译 QEMU。我在某些文档中看到,用户空间模拟支持以下操作系统:1. Linux(称为 qemu-linux-user)2. Mac OS X/Darwin(称为 qemu-darwin-user)3. BSD(称为 qemu-bsd-user)
我想知道 QEMU 用户空间模拟是否支持 Windows 操作系统(通过 mingw 或 cygwin)?有人试过使用它吗?
答案1
据我所知,QEMU 的用户模式模拟仅当主机操作系统与您要模拟的操作系统匹配时才有效。这是基于我自己的经验,我尝试在 Linux 主机上运行 BSD 和 Darwin 模拟,但毫无成功。
解释为什么有点复杂,但很大程度上可以归结为这样一个事实:QEMU 的用户模式模拟本质上是一个机器代码转换器,它还可以正确映射系统调用号并根据需要转换数据结构(位宽和位顺序转换)。MingW 在 Windows 上提供了类似 UNIX 的环境,但没有实现 QEMU 的用户模式模拟可以转换的任何完整 ABI。
但是,您可能能够在 WSL 环境中运行它(至少对于 Linux 仿真而言),因为它提供了(大部分)完整的 Linux 用户空间 ABI。
答案2
如果您想在 Windows 中使用 Linux,请查找 coLinux。注意:coLinux 现在由 Linux 内核开发人员维护。因此,只需从 kernel.org 下载内核并运行“make menuconfig ARCH=colinux”,然后运行“make”
如果您想要另一个 CPU,只需将 coLinux 与您喜欢的 Linux 发行版(例如 debian)结合起来。您可以安装 qemu-user-static 和 binfmt。 https://wiki.debian.org/QemuUserEmulation