QEMU User mode emulation

I am a student and trying to compile QEMU on MINGW32 in user emulation mode. I read in certain document that, the following OS are supported in user space emulation: 1. Linux (referred as qemu-linux-user) 2. Mac OS X/Darwin (referred as qemu-darwin-user) 3. BSD (referred as qemu-bsd-user)

I want to know whether Windows OS(through mingw or cygwin) is supported in QEMU user space emulation? Has anyone tried to use it?


As far as I know, QEMU's user mode emulation only works if the host OS matches with what you're trying to emulate. THis is based on my own experience trying to get the BSD and Darwin emulation working on a Linux host with no luck whatsoever.

Explaining why is a bit complicated, but it largely comes down to the fact that QEMU's user mode emulation is, at its core, a machine code translator that also properly maps system call numbers and converts data structures as appropriate (bit-width and bit-order conversions). MingW provides a UNIX-like environment on Windows, but does not implement any of the full ABI's that QEMU's user mode emulation can translate to.

You may, however, have some luck running it inside a WSL environment (at least, for the Linux emulation), as that provides a (mostly) complete Linux userspace ABI.