Earlier with Rosetta in 2006, Apple was only using the Just-in-time (JIT) compiler for static binary translation. Now the question comes, how does this translation happen and how is Rosetta managing to run heavy x86 apps on ARM Macs seamlessly? You can attribute the main reason to the Ahead-of-time (AOT) compiler that Apple has deployed on Rosetta 2. Since x86 and ARM architectures are drastically different, this translation is required for smooth functioning of Intel-based apps. When I say instruction set, it means the commands (also called machine code in computing) needed to execute a program of one architecture on another. But how does this powerful translation layer work? There is little information on this subject so we will try to dissect Rosetta 2 and understand how Rosetta 2 functions.įirst of all, Rosetta 2 is a translation layer which means it translates the instruction sets of Intel x86 architecture into ARM-based Apple Silicon architecture.
For the uninitiated, Rosetta 2 is the translation layer that allows you to use Intel-based apps on Apple Silicon Macs. After the introduction of Rosetta in 2006 during the PowerPC-Intel transition, Apple has announced a much-improved Rosetta 2 in 2020 for seamless Intel-Apple Silicon transition.