Get fresh insights, pro tips, and thought starters–only the best of posts for you.
On November 10 2020, Apple CEO Tim Cook made his mark on history by announcing a bold new path for the company. A strong and decisive move away from conventional Intel processors for their macOS devices, to their personally curated ARM-based silicon processors, the Apple M1 chip. After 14 years of producing Macs with the intel core series processors, the M1 chip marked the beginning of a new and improved generation of Macs.
“With its unique combination of remarkable performance, powerful features, and incredible efficiency, M1 is by far the best chip we’ve ever created.”
– Johny Srouji
Senior vice president of Hardware Technologies, Apple
However, Apple’s new silicon Macs brought forth a slightly unprecedented concern. For the past decade, macOS apps were built to run on the Intel core processors.
With the introduction of the new M1 Macs, Mac admins and developers found themselves in the middle of a fix to make previous-gen apps compatible with the new Apple Silicon Macs. These new Macs by default, could not run previous-gen Intel x86 apps on their ARM processors. This is where the need for Apple’s Rosetta 2 software comes in.
Apple introduced Rosetta 2 to help both Mac admins and developers ease the process of shifting to the new M1 Macs, and ensure that the apps supported by previous-gen Intel Macs were compatible with the new ARM-based silicon Macs.
Rosetta 2 essentially translates instructions written for Intel processors into commands that Apple’s ARM processor can understand.
“Rosetta 2 automatically translates existing Mac apps so they work on the new Macs with Apple Silicon chips. It translates the apps when you install them so that they can launch immediately and be instantly responsive.”
– Craig Federighi
Software engineer, Apple
@Apple WWDC 2020
If an app or plugin only contains Intel instructions, Apple’s M1 Mac automatically launches Rosetta and translates the x86 code into native commands, which is then launched instead of the original.
Apple’s first Rosetta translation software was introduced back in 2006 when the Macs were undergoing a transition from PowerPC processors to Intel. Its basic function remained the same – to enable PowerPC apps to run on Intel processors.
However, the method of transformation differs between the two. Whereas the first version of Rosetta converted instructions in real-time, Rosetta 2 converts an application right after installation, creating an ARM-compatible version of the app even before it is opened. This ensures reduced processing time, which improves the overall user experience.
Almost all apps that are developed by Apple are already compatible with the native M1 chip. However, certain apps in the Mac app store, as well as specific third-party apps supporting Intel x86 instructions may still not have received an update that would make them compatible with Apple’s Silicon processor. These apps will require the Rosetta 2 software on the Mac in order to successfully run.
It is worth noting that Rosetta 2 has some limitations to what it can translate. It is not compatible with specific programs including virtual machine apps. Rosetta is also unable to translate kernel extensions and AVX vector instruction sets.
To identify which apps will require Rosetta, you can go to the Applications tab in the Finder menu and select the specific app you need to check. Once you right-click on the app and select the ‘Get info’ tab on the pop-up menu, you can scroll down to General > Kind, which will show you if the app is a native ARM app, an Intel app, or a universal app.
Unfortunately, Rosetta 2 does not come pre-installed on the new M1 Macs. If your enterprise needs to install and run an Intel-based app that has not been updated to the universal build, you will need to install Rosetta first. The same case applies when you are using a Unified Endpoint Management solution to install and manage Intel apps on an M1 Mac.
UEM apps on Apple M1 Macs that aren’t updated to the universal build – including the UEM agent app – will depend on Rosetta’s translation process to successfully monitor and manage the device.
In such cases, the best solution is to recommend users to manually install Rosetta by either trying to open or install an Intel-based app, or to provide a script that runs a command to install Rosetta 2 on their device.
In order to ensure a streamlined device enrollment process for your enterprise, it is highly advisable to switch to a UEM solution that supports a universal build, or contact your current UEM service provider and request them to update to the latest universal build.
Although the new Rosetta 2 translates Intel x86 instructions to native code right after app installation – or in certain cases, upon the first run of the app (when the app is installed via a third-party installer) – it won’t be as efficient as when the app is written specifically for the native processor. However, this drop in performance is generally unnoticeable and the CPU load is more or less the same on the macOS device. Despite the drop, the performance of the Rosetta converted apps on the M1 Mac still outperforms that of any other Intel Mac.
Although Apple proclaims support for the Intel series and its apps for the coming years, Rosetta 2 cannot be considered a permanent fix to the issue. Apple introduced Rosetta 2 with the intention of providing developers with more time to have their apps compatible with Apple’s native silicon processor. Once enterprises and developers have updated their apps to the universal versions, Rosetta 2 will eventually become obsolete.
The first instance of Rosetta was introduced back in 2006 for macOS 10.4.4, became a downloadable option for 10.6, and disappeared the following year. Considering the case that Apple still supports the Intel Mac and its apps, it seems likely that Apple will maintain support for Rosetta 2 at least for the coming years.