Rosetta (software)
Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different CPU architectures. It gives developers and consumers a transition period in which to update their application software to run on newer hardware.
PowerPC application (Microsoft Word for Mac 2004) running on OS X for Intel in Rosetta | |
Developer(s) | Apple Inc. |
---|---|
Operating system | Mac OS X 10.4.4–10.6.8 (Intel) macOS Big Sur 11.0–present (ARM) |
Type | PowerPC binary translation (original version) Intel binary translation (Rosetta 2) |
Website | www |
The first version of Rosetta, introduced in 2006, allows PowerPC applications to run on Intel-based Macs. The second version, introduced in 2020, is a component of macOS Big Sur to aid in the Mac transition to Apple Silicon from Intel processors.[1] The name "Rosetta" is a reference to the Rosetta Stone, the artifact which enabled translation of Egyptian hieroglyphs.[2]
Rosetta
Mac transition to Intel processors |
---|
Apple released the first version of Rosetta in 2006 when it changed the instruction set architecture of the Macintosh platform from the PowerPC to the Intel processor. It was initially included with Mac OS X v10.4.4 "Tiger", the version that was released with the first Intel-based Macs, and allows many PowerPC applications to run on certain Intel-based Mac computers without modification. Rosetta is based on QuickTransit technology.[3] It has no graphical user interface, which led Apple to describe Rosetta as "the most amazing software you'll never see".[4] Rosetta is not installed by default in Mac OS X v10.6 "Snow Leopard", but can be retained as an option via the installer or Apple Software Update.[5] Rosetta is neither included nor supported in Mac OS X v10.7 "Lion" or later, which therefore cannot run PowerPC applications.[5]
Rosetta translates G3, G4, and AltiVec instructions, but not G5 instructions. Although most commercial software for PowerPC-based Macs were compatible with these requirements, any applications that relied on G5-specific instruction sets had to be modified by their developers to work on Rosetta-supported Intel-based Macs. Apple advised that applications with heavy user interaction but low computational needs (such as word processors) would be best suited to Rosetta, while applications with high computational needs (such as AutoCAD, games, or Adobe Photoshop) would not.[6]
Rosetta also does not support the following:[7]
- The Classic environment, and thus any non-Carbon application built for Mac OS 9 or earlier
- Code that inserts preferences into the System Preferences pane
- Applications that require precise exception handling
- Screen savers
- Kernel extensions and applications that depend on them
- Bundled Java applications or Java applications with JNI libraries that cannot be translated
- Java applets in Rosetta-translated applications, meaning that a native Intel web browser application, rather than a legacy PowerPC version, must be used to load Java applets
The reason for Rosetta's reduced compatibility compared to Apple's earlier 68k emulator for PPCs lies within its implementation. Rosetta is a user-level program and can only intercept and emulate user-level code. By contrast, the 68k emulator accesses the very lowest levels of the OS by being at the same level as, and tightly connected to, the Mac OS nanokernel on PPC Macs, which 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 lines of 68k and PPC code to be interspersed within the same fat binary.
Rosetta 2
Mac transition to Apple Silicon |
---|
|
|
Rosetta 2 is included as of macOS Big Sur to aid in the Mac transition to Apple Silicon from Intel processors.[1][8] In addition to the just-in-time (JIT) translation support available in Rosetta, Rosetta 2 includes support for translating an application at installation time.
See also
- Classic Environment – software that allows Mac OS X based operating systems to run Mac OS 9 applications
- Mac 68k emulator – lower level program used for a similar purpose during 680x0 to PowerPC transition
- Universal binary – combined PPC/Intel applications that run natively on both processors
- Fat binary § Apple's fat binary – combined PPC/68k application that ran on older Macintoshes
References
- Warren, Tom (June 22, 2020). "Apple is switching Macs to its own processors starting later this year". The Verge. Retrieved June 22, 2020.
- Core Duo iMacs debut speedy new chips Archived March 3, 2012, at the Wayback Machine
- "The brains behind Apple's Rosetta: Transitive". CNET News.com. June 8, 2005. Archived from the original on July 14, 2014. Retrieved July 4, 2007.
- "Rosetta". Apple. Archived from the original on November 16, 2010. Retrieved September 5, 2011.
- AppleInsider Staff (February 26, 2011). "Mac OS X Lion drops Front Row, Java runtime, Rosetta". AppleInsider. AppleInsider, Inc. Archived from the original on April 29, 2014. Retrieved February 27, 2011.
- "Rosetta" (PDF). Universal Binary Programming Guidelines, Second Edition. Apple. Archived from the original (PDF) on August 3, 2012. Retrieved September 5, 2011.
- "What Can Be Translated?" (PDF). Universal Binary Programming Guidelines, Second Edition. Apple. Archived from the original (PDF) on August 3, 2012. Retrieved September 5, 2011.
- Mayo, Benjamin (June 22, 2020). "Apple announces Mac architecture transition from Intel to its own ARM chips, offers emulation path". 9to5Mac. Retrieved June 23, 2020.
External links
- Apple Rosetta Web site at the Wayback Machine (archived January 7, 2011)
- Transitive Corporation web site at the Wayback Machine (archived September 14, 2008)
- Rosetta compatibility index