3 ms·
QEMU softmmu is a full system emulator. There's another mode of QEMU build (qemu-user) that emulates userspace applications (just like Rosetta and WoW) and eve
by oshiar53-0 5y ago
QEMU softmmu is a full system emulator. There's another mode of QEMU build (qemu-user) that emulates userspace applications (just like Rosetta and WoW) and even lets you link to native libraries.
- spijdar 5y ago> and even lets you link to native libraries. I'd be interested to learn more about this. My experience with qemu's usermode emulation is it only wraps syscalls and some ioctls. So you need a complete userland in the target arch. In particular, it doesn't really wrap any DRM interfaces very well/thoroughly (as of when I tried), so you couldn't get 3D hardware acceleration working. box64 bypasses this problem by just wrapping the native mesa libraries, avoiding opening that can of ioctl worms. (To my knowledge WoW is the same in that it doesn't emulate the entire userland stack up to the syscall layer but can wrap calls to DLLs to native ones, not unlime the Hangover project does for x86 wine on Aarch64/ppc64le Linux)
- zozbot234 5y ago> My experience with qemu's usermode emulation is it only wraps syscalls and some ioctls. So you need a complete userland in the target arch. Yes, but that's required because the native userland would have a totally different ABI, so it's just not going to work with the target code even in emulated form. The best you can do is have the "target" userland marshal calls to the native userland, translating across native and target ABI. But even that is likely unfeasible in the general case.
- comex 5y ago> The best you can do is have the "target" userland marshal calls to the native userland, translating across native and target ABI. Which is what Box64 does.
- oshiar53-0 5y agoEdit: I confused QEMU usermode with something else. QEMU seems to only do syscall/ioctl translation at the moment. My sincere apologies (I can't delete the comment). Maybe library call stubbing (not x64 exclusive) could be my next project.