Apple made history with the launch of its new MacBooks sporting the in-house ARM-based Apple M1 processor, marking the end of over a decade-long reliance on Intel processors. Amidst this monumental transition, Apple faced the daunting challenge of maintaining app compatibility on the M1 platform. However, it seems that Apple has successfully navigated this challenge with its robust translation layer—Rosetta 2. In contrast, Windows on ARM struggled to attract users due to compatibility issues with x86 apps. What sets Rosetta 2 apart and why does Windows x86 emulation lack its prowess? Let’s delve into a head-to-head comparison of Apple’s Rosetta 2 and Windows x86 Emulation to uncover the answers.
Deciphering Apple’s Rosetta 2 versus Windows x86 Emulation: Key Insights
Below, we’ve outlined the sections covered for easy navigation and reference. Click on the links to move seamlessly between sections.
Table Of Contents
Explaining Apple’s Rosetta 2
Introduced in 2006 during the PowerPC-Intel transition, Apple later unveiled Rosetta 2 in 2020 to facilitate the Intel-Apple Silicon transition. Rosetta 2 serves as a translation layer enabling the use of Intel-based apps on Apple Silicon Macs. But what underlies the functionality of this translation layer? Given the limited available information, let’s dissect Rosetta 2 to grasp its mechanics.
Rosetta 2, a translation layer, converts Intel x86 architecture instructions into ARM-based Apple Silicon architecture. Instruction sets, or machine code, are the commands necessary to execute programs across architectures. Given the stark differences between x86 and ARM architectures, this translation ensures the compatibility of Intel-based apps.
Now, how does this translation happen and how is Rosetta managing to run heavy x86 apps on ARM Macs seamlessly? The main reason lies in the Ahead-of-time (AOT) compiler Apple has deployed on Rosetta 2. In 2006, Apple only used the Just-in-time (JIT) compiler for static binary translation with Rosetta. Now, with the AOT compiler on Rosetta 2, Apple Silicon can translate and compile code on the fly through dynamic binary translation.
Rosetta 2 now employs both AOT and JIT compilers, adapting to various scenarios. Before app launch, it utilizes the AOT compiler to translate code, enabling Intel-based apps to function like Universal ones on Apple Silicon. For dynamic parameters or runtime-generated values, Rosetta 2 employs JIT for real-time translation.
Rosetta 2 efficiently translates x86 instruction sets into ARM-specific code well in advance, narrowing the performance gap between Universal native and Intel-based apps.
Windows x86 Emulation Mechanism
Unlike Apple, Microsoft hasn’t fully embraced ARM, leading to slow development. Microsoft has licensed only a few ARM-based Windows laptops, such as the Surface Pro X and some always-connected PCs by HP, Lenovo, etc. The main reason for the slow adoption of ARM-based Windows laptops is the lack of support for x86-64 bit (Intel-based 64-bit) apps, which comprise the bulk of modern Windows apps.
Currently, ARM-based Windows laptops support native ARM apps and 32-bit Intel-based apps via Windows x86 Emulation. This emulation has hindered smooth transitioning to ARM. Why can’t Microsoft implement something similar to Rosetta 2 on Windows 10? IrfanView runs via x86 Emulator on Windows 10X.
Regarding your query, it already does. Despite common belief, Microsoft employs a similar method as Rosetta—translating binaries to machine code via its WOW64 layer. According to a 2018 Microsoft document, “The WOW64 layer of Windows 10 enables x86 code execution on the ARM64 version of Windows 10. x86 emulation involves compiling blocks of x86 instructions into ARM64 instructions, optimized for performance. Cached translated code blocks minimize instruction translation overhead and facilitate optimization upon subsequent runs.”
In September 2020, Microsoft announced x86 emulation for ARM-based Windows laptops, with added support for Intel-based 64-bit apps. Details on the compiler are scarce, but Microsoft has utilized JIT for real-time translation and compilation. The upcoming x86 emulator’s capabilities remain to be seen upon its release next year.
Comparing Apple’s Rosetta 2 and Windows x86 Emulation: Translation Performance
Windows will introduce new x86 emulation next year, yet other issues hinder x86 translation on Windows, making it slower than Rosetta. Unlike macOS, which supports only ARM 64-bit and x86 64-bit architectures, Windows on ARM accommodates ARM 32-bit, 64-bit, x86 32-bit, and soon, x86 64-bit architectures. This resource overhead impedes translation speed.
Windows must maintain backward compatibility with numerous programs, plugins, tools, outdated libraries, and more. In contrast, Apple’s strict platform control ensures developers work within modern frameworks, facilitating such transitions. Additionally, Apple’s successful transition from PowerPC to Intel Macs (2006-2009) positions it well for similar endeavors.
Lastly, the performance gap between Qualcomm’s Snapdragon 8cx (on Windows-based ARM laptops) and Apple M1 is significant. Even the latest Snapdragon 888 lags behind the Apple A14 Bionic by at least one generation. However, Qualcomm’s announcement of the Snapdragon 8cx Gen 2 5G in September brings hope, as it will be available on ARM-based Windows laptops next year. The new chip, coupled with improved emulation, may resolve the issue for Microsoft.
Apple’s Rosetta 2 vs Windows x86 Emulation: Which Wins?
Rosetta 2 demonstrates significant power, with Apple effectively supporting Intel-based programs. While Windows on ARM currently lacks promise, Microsoft’s new emulation method announcement raises hope for users. Whether Microsoft can surpass Apple remains to be seen in the next quarter. That’s all from us. Any questions? Feel free to comment below.
Pritam Chopra is a seasoned IT professional and a passionate blogger hailing from the dynamic realm of technology. With an insatiable curiosity for all things tech-related, Pritam has dedicated himself to exploring and unraveling the intricacies of the digital world.