When build qemu
from source code, I find for every CPU
architecture, there are 2 options for target list: xx-softmmu
and xx-linux-user
. For example:
x86_64-softmmu
x86_64-linux-user
I can't search the difference between two options. Could anyone introduce what is the difference and relationship between them?
When it resets, the starting point will be the reset vector of that architecture. While xxx-linux-user, compiles qemu-xxx, which allows you to run user application in xxx architecture (User-mode Emulation). Which will seek the user applications' main function, and start execution from there.
I know xx-linux-user is for User Emulation. What is the difference between "arm-linux-user" and "armeb-linux-user"? Show activity on this post. armeb-linux-user is for big-endian Linux ARM binaries, and arm-linux-user is for little-endian ARM binaries.
It doesn’t support as many features as Cinnamon or MATE, but it’s extremely stable and very light on resource usage. Which is better Linux Mint Cinnamon or MATE? Cinnamon is the original flavor of Linux Mint whereas MATE is a desktop environment with legacy.
To put it simply, xxx-softmmu will compile qemu-system-xxx, which is an emulated machine for xxx architecture (System Emulation). When it resets, the starting point will be the reset vector of that architecture. While xxx-linux-user, compiles qemu-xxx, which allows you to run user application in xxx architecture (User-mode Emulation). Which will seek the user applications' main function, and start execution from there.
See https://en.wikipedia.org/wiki/QEMU#Operating_modes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With