| Rosetta | |
|---|---|
Rosetta 2 installation prompt | |
| Developer | Apple Inc. |
| Operating system | Mac OS X 10.4.4–10.6.8 (Intel host, emulating PowerPC) macOS 11.0–present (ARM host, emulating Intel) ARMLinux guest emulating Intel[1] |
| Type | Binary translation,emulation |
| Website | https://support.apple.com/en-us/102527 |
Rosetta is adynamic binary translator developed byApple Inc. formacOS, an application compatibility layer between differentinstruction set architectures. It enables a transition to newer hardware, by automatically translating software. The name is a reference to theRosetta Stone, the artifact which enabled translation ofEgyptian hieroglyphs.[2]
The first version of Rosetta was introduced in 2006 inMac OS X Tiger as part of theMac transition from PowerPC processors to Intel processors, allowingPowerPC applications to run onIntel-based Macs. Support for Rosetta was dropped withMac OS X Lion (10.7) in 2011.
Rosetta 2 was introduced in 2020 as a component ofmacOS Big Sur, and as part of theMac transition from Intel processors to Apple silicon, allowingIntel applications to run onApple silicon-based Macs.[3] Most Rosetta 2 features will be removed from macOS with version 28 in 2027.
Macintosh has used CPUs with several differentinstruction set architectures (ISA): theMotorola 68000 series,PowerPC, Intelx86, andARM64 inApple silicon. Each ISA is incompatible, necessitating a transition plan based on a software layer toemulate the previous ISA on the succeeding one.
With the launch ofPower Macintosh, theMac 68K emulator is part ofSystem 7.1.2 and later. This emulator uses PowerPC features and is embedded at the lowest levels of the operating system, integrated with theMac OS nanokernel. This means that the nanokernel is able to intercept PowerPC interrupts, translate them to 68k interrupts (then doing a mixed mode switch, if necessary), and then execute 68k code to handle the interrupts. This allows 68k and PowerPC code to be interspersed within the samefat binary.
| Mac transition to Intel processors |
|---|
Apple launched Rosetta in 2006 upon theMac transition to Intel processors from PowerPC. It is inMac OS X Tiger 10.4.4 "Tiger", the version that launched thex86-based Macs, and allows many unmodifiedPowerPC applications to automatically run on Intel-based Mac computers. Rosetta is based onQuickTransit technology.[4] It has nographical user interface, and launches transparently, which led Apple to describe Rosetta as "the most amazing software you'll never see".[5] Rosetta is optionally installable inMac OS X 10.6 "Snow Leopard".[6] Rosetta is neither included nor supported inMac OS X 10.7 "Lion" (released in 2011) or later.[6]
Because of the greater architectural differences between Intel and PowerPC processors, Rosetta operates at a higher level than the 68000 emulator does, as auser-level program that can only intercept and emulate user-level code. It translatesG3,G4, andAltiVec instructions, but notG5. Although most commercial software for PowerPC-based Macs was compatible with these requirements and G4 systems were still widely used, developers must update any applications that rely on G5-specific instructions to work on Rosetta. Apple advised that applications with heavy user interaction but low computational needs (such asword processors) would be best suited to use with Rosetta, and applications with high computational needs (such as games,AutoCAD, orPhotoshop) would not.[7]
| Mac transition to Apple silicon |
|---|
In 2020, Apple announced Rosetta 2 would be bundled withmacOS Big Sur, to aid in theMac transition to Apple silicon. The software permits many applications compiled exclusively for execution onx86-64-based processors to be translated for execution on Apple silicon.[3][8]
In addition to thejust-in-time (JIT) translation support, Rosetta 2 offersahead-of-time compilation (AOT), with the x86-64 code fully translated, just once, when an application without a universal binary is installed on an Apple silicon Mac.[9]
Rosetta 2's performance has been praised greatly.[10][11] In some benchmarks, x86-64-only programs performed better under Rosetta 2 on M1 than native x86-64. One of the key reasons why Rosetta 2 provides such a high level of translation efficiency is the support of x86-64memory ordering in the M1 SoC.[12] The SoC also has dedicated instructions for computing x86 flags.[13]
SincemacOS Ventura,Linuxguest operating systemvirtual machines can install Rosetta 2 as a guest runtime binary to run x86-64 Linux apps.[14][15]
AtWWDC 2025, Apple stated that most Rosetta 2 features will be removed from macOS with version 28 in 2027, with support limited to unmaintained games.[16]
It translates the apps when you install them, so they can launch immediately and can be instantly responsive. Rosetta 2 can also translate code on the fly when needed.
ARM flag-manipulation extensions... Apple's secret extension...