> I would guess that the people who develop for Linux servers would mainly use Docker if they run macOS, and that also relies on VM, but not using Fusion.
x86 Docker on ARM Mac is an insanely complex setup - it runs an ARM Linux VM inside Hypervisor.framework that then uses a Rosetta client via binfmt that <somehow> communicates with the host macOS to set up all the Rosetta specific stuff and prepare the client process to use TSO for fast x86 memory access.
Unfortunately, Apple heavily gates anything Rosetta, I'm amazed Docker got enough coordination done with them - because QEMU didn't, they don't support anything Apple ARM-specific as a result and don't plan to unless Apple significantly opens up access and documentation; TSO for example is gated behind private entitlements.
Yeah that's a "how to use it in the simple case", that's not a "here is how this shit works under the hood so you can use it for more than just running userland processes" and it also doesn't state the limitations (e.g. what instructions are supported and which are not).
x86 Docker on ARM Mac is an insanely complex setup - it runs an ARM Linux VM inside Hypervisor.framework that then uses a Rosetta client via binfmt that <somehow> communicates with the host macOS to set up all the Rosetta specific stuff and prepare the client process to use TSO for fast x86 memory access.
Unfortunately, Apple heavily gates anything Rosetta, I'm amazed Docker got enough coordination done with them - because QEMU didn't, they don't support anything Apple ARM-specific as a result and don't plan to unless Apple significantly opens up access and documentation; TSO for example is gated behind private entitlements.