Apple created history when it launched the new MacBooks with its in-house ARM-based Apple M1 processor, replacing Intel processors after more than a decade. With such a huge transition, there was a gargantuan task on Apple’s hand to maintain app compatibility on M1. However, it appears Apple has pulled it off through its powerful translation layer — Rosetta 2. We have already seen how Windows on ARM failed to entice users because of compatibility issues with x86 apps. So what makes Rosetta 2 so powerful and why Windows x86 emulation does not seem to have that promise? Well, to find the answer, let’s go ahead and compare Apple’s Rosetta 2 vs Windows x86 Emulation side by side.

Here, we have mentioned all the sections we have covered so you can easily find all the information. You can click on the link to seamlessly move between different sections.

  • How Apple’s Rosetta 2 Works?
  • How Windows x86 Emulation Works?
  • Translation Performance

How Apple’s Rosetta 2 Works?

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. For the uninitiated, Rosetta 2 is the translation layer that allows you to use Intel-based apps on Apple Silicon Macs. 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.

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. Earlier with Rosetta in 2006, Apple was only using the Just-in-time (JIT) compiler for static binary translation. Now with the AOT compiler on Rosetta 2, Apple Silicon is able to translate and compile the code on the fly through dynamic binary translation.

Unlike Apple, Microsoft has not fully embraced ARM and there has been a slow development on this front. The company has so far licensed only a few ARM-based Windows laptops including the Surface Pro X and some always-connected PCs by HP, Lenovo, etc. The main reason behind the slow adoption of ARM-based Windows laptops is apparently the lack of support for x86-64 bit (Intel-based 64-bit) apps which cover the bulk of modern Windows apps.

As of now, ARM-based Windows laptops only support native apps built on the ARM instruction set and 32-bit Intel-based apps which run through Windows x86 Emulation. You can conclude that Windows x86 Emulation has been a bottleneck for smooth transitioning to ARM. Coming to the question, why can’t Microsoft pull off something like Rosetta 2 on Windows 10? IrfanView running through x86 Emulator on Windows 10X

While the new Windows x86 emulation is due to arrive next year, there are some other issues that make x86 translation on Windows much slower than Rosetta. First off, macOS has to support only two architectures: ARM 64-bit and x86 64-bit. Apple did away with 32-bit app support in 2019. In comparison, Windows on ARM supports ARM 32-bit and 64-bit architecture; x86 32-bit and x86 64-bit that is coming next year. With such a resource overhead, it’s difficult to make translation faster.

Next, Windows has to maintain backward-compatibility with thousands of programs, plugins, tools, outdated libraries, and whatnot. Whereas, Apple’s tight control of the platform ensures developers are always on the modern framework for developing apps which in turn, helps in making such a huge transition. Besides that, as Apple has already done a successful transition from PowerPC to Intel Macs (2006-2009) in the past, it has a far better experience to pull something like this.