Re:Apple Silicon M1 Chips and Docker
by easton on Monday November 16, 2020 @10:22PM
(#25119962)
I think Apple didn’t want to support x86 emulation at all, and made Rosetta 2 purely AOT compilation (which you can’t really do with virtual machines). It makes it so they don’t have to deal with having x86 VMs available but super slow making people think that Apple Silicon is slow (even if that’s untrue), and that’s kind of the growing pain that Microsoft is going through at the moment with Windows on ARM.
[ Parent
| on HN ]
Rosetta 2 purely AOT? Where did you get that idea from?
It certainly still does some JIT/interpretation at runtime but it does indeed translate the executable upon first launch.^1 I can’t imagine how it would be able to fully translate a browser JavaScript engine that’s doing its own JIT, for example.
1: https://www.macrumors.com/2020/11/12/rosetta-2-translation-c...
Just like the original Rosetta it does indeed cache translations as well as support JIT and other forms of dynamic translation.
Exactly. It does AOT, but certainly not exclusively.
Automatic translation of a hypervisor, guest kernel, and guest userspace is a far different level of difficulty than translating a userspace application.
Saying "didn't want to support" implies that one can "just" repurpose binary translation with a few build settings. You're off by several orders of magnitude.