4 ms·
Thank you for the thorough explanation. Why can’t Rosetta 2 do the x86-to-ARM JIT translation inside the “Docker for Mac” VM instead of using the (presumably s
by runeks 5y ago
Thank you for the thorough explanation.
Why can’t Rosetta 2 do the x86-to-ARM JIT translation inside the “Docker for Mac” VM instead of using the (presumably slower) QEMU emulation?
Or is QEMU smart enough to do the same translation that Rosetta 2 does which, if I recall correctly, only loses about 25% performance compared to native x86?
- ArchOversight 5y agoRosetta 2 is Apple's product that is specifically geared towards translating Darwin binaries. Inside the VM is standard Linux. Linux can't run Rosetta 2 since that is a macOS tool. QEMU emulates a platform on the fly, it does not attempt to rewrite the code to run on ARM and cache that result. QEMU also emulates all the specific quirks of the x86_64 platform, whereas Rosetta 2 does not. It would be neat if Apple open sourced their Rosetta 2 technology and made it more widely available, but at this time there is no option for 3rd parties to use Rosetta 2, especially from within a Linux VM.