

Apple probably won't do that because they've invested a lot of money into it and it gives them a competitive advantage over other ARM-based platforms (such as Microsoft Surface Pro X). Perfect world scenario, Apple would open source Rosetta2 and it would be ported to Linux. There is no reason in principle why something on Linux couldn't do the same thing. There is no reason in principle why some 圆4-to-ARM translator running on Linux on Apple Silicon could not exploit the same processor extension.Īnother secret is that it predominantly does AOT translation, and only uses interpretation/JIT for 圆4 code generated dynamically (such as by an 圆4 JIT). One of the secrets of Rosetta2's performance is Apple Silicon processor extension enabling ARM code to use the x86 memory model. I wonder if this would motivate someone to build an 圆4-to-ARM translation layer for Linux which is closer to Rosetta2 than qemu-user-static in performance? > If by "performant" you mean "as fast as it used to run on x86 Mac hardware" than the answer is: No, it's emulation, and it's slower than Rosetta2. There may be inherent advantages to Apple Silicon as a technology, but nobody should make the unproven assumption that Apple Silicon is universally superior to any and every possible TSMC 5nm x86 chip. In contrast, Apple Silicon is a leap sideways whose opportunity arose because Intel's flagship process node has had a rough few years. That was a difficult (MacOS didn't drop 32bit app support until Catalina) but obvious (unless you hate RAM) leap forward. Still, in terms of hardware and the development ecosystem, Microsoft simply has a lot more market inertia than does Apple. Apple has tremendous impact on design, form factor, and other visionary steps that the market takes. Heck, that's arguably part of why Apple left PowerPC for Intel in the first place. Personal computers generally go where Windows goes. Their intention to abandon x86 isn't a clarion call for the obsolescence of x86. Apple is 15% of the personal computer market, if I'm not mistaken.
