Rosetta (software)
Developer(s) | Apple Inc. |
---|---|
Operating system | Mac OS X 10.4.4–10.6.8 (Intel) macOS 11.0–present (ARM) Linux guest[1] |
Type | Binary translation, emulation |
Rosetta is a
The first version of Rosetta, introduced in 2006 in
Rosetta 2, introduced in 2020 as a component of macOS Big Sur, is part of the Mac transition from Intel processors to Apple silicon, allowing Intel applications to run on Apple silicon-based Macs.[3]
Background
With the launch of
Rosetta
Mac transition to Intel processors |
---|
Apple launched Rosetta in 2006 upon the
Because of the greater architectural differences between Intel and PowerPC processors, Rosetta operates at a higher level than the 68000 emulator does, as a
Rosetta also does not support the following:[9]
- The Classic environment, and thus any non-Carbon application built for Mac OS 9or earlier
- Code that inserts preferences into the System Preferences pane
- Applications that require precise exception handling
- Screen savers
- Kernel extensionsand applications that depend on them
- Bundled Java applications or Java applications with JNIlibraries 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
Rosetta 2
Mac transition to Apple silicon |
---|
|
In 2020, Apple announced Rosetta 2 would be bundled with macOS Big Sur, to aid in the Mac transition to Apple silicon. The software permits many applications compiled exclusively for execution on x86-64-based processors to be translated for execution on Apple silicon.[3][10]
To install Rosetta 2 on an Apple silicon Mac there are two ways to do it: either by using the Terminal to install the program directly, or by trying to open an application compiled for x86-64, which will open an installation window.
In addition to the just-in-time (JIT) translation support, Rosetta 2 offers ahead-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.[11]
Rosetta 2's performance has been praised greatly.[12][13] In some benchmarks, x86-64-only programs performed better under Rosetta 2 on a Mac with an Apple M1 SOC than natively on a Mac with an Intel x86-64 processor. One of the key reasons why Rosetta 2 provides such a high level of translation efficiency is the support of x86-64 memory ordering in the Apple M1 SOC.[14] The SOC also has dedicated instructions for computing x86 flags.[15]
Although Rosetta 2 works for most software, some software doesn't work at all[16] or is reported to be "sluggish".[17]
Similar to the first version, Rosetta 2 does not normally require user intervention. When a user attempts to launch an x86-64-only application for the first time, macOS prompts them to install Rosetta 2 if it is not already available. Subsequent launches of x86-64 programs will execute via translation automatically. An option also exists to force a universal binary to run as x86-64 code through Rosetta 2, even on an ARM-based machine.[18]
Since
See also
- Fat binary § Apple's fat binary – combined 68k/PPC applications that run natively on both processors
- Universal binary – combined PPC/Intel applications that run natively on both processors
- Universal 2 binary– combined Intel/ARM applications that run natively on both processors
References
- Apple Inc. Retrieved August 7, 2022.
- ^ Norr, Henry (January 27, 2006). "Core Duo iMacs debut speedy new chips". Macworld.
- ^ a b Warren, Tom (June 22, 2020). "Apple is switching Macs to its own processors starting later this year". The Verge. Retrieved June 22, 2020.
- ^ "The brains behind Apple's Rosetta: Transitive". CNET. June 8, 2005. Retrieved January 9, 2023.
- ^ "Rosetta". Apple. Archived from the original on January 13, 2006. Retrieved September 5, 2011.
- ^ AppleInsider. AppleInsider, Inc. Archivedfrom 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.
- ^ "Universal Applications". Apple. Archived from the original on March 3, 2016. Retrieved August 5, 2019.
- ^ "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.
- ^ WWDC2020 Keynote. Apple Inc. June 22, 2020. Event occurs at 1h39m37s.
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.
- ^ Evans, Jonny (November 19, 2020). "Everything you need to know about Rosetta 2 on Apple Silicon Macs". Computerworld. Retrieved December 8, 2020.
- ^ "Yeah, Apple's M1 MacBook Pro is powerful, but it's the battery life that will blow you away". TechCrunch. November 17, 2020. Retrieved December 8, 2020.
- ^ @ErrataRob (November 25, 2020). "4/ So Apple simply cheated. They added Intel's memory-ordering to their CPU. When running translated x86 code, they switch the mode of the CPU to conform to Intel's memory ordering" (Tweet) – via Twitter.
- ^ Dougall, J (November 9, 2022). "Why is Rosetta 2 fast?". Retrieved August 15, 2023.
ARM flag-manipulation extensions... Apple's secret extension...
- ^ Carlton, Sam (December 8, 2020). "ThatGuySam/doesitarm". GitHub. Retrieved December 8, 2020.
- ^ "r/mac - Apps on Rosetta 2". reddit. November 29, 2020. Retrieved December 8, 2020.
- ^ "Use Office for Mac with Rosetta and Apple silicon". support.microsoft.com. Retrieved June 21, 2021.
- ^ Proven, Liam (June 9, 2022). "Apple offers improved Linux support in macOS 13". The Register. Retrieved January 6, 2023.
- ^ Cunningham, Andrew (June 7, 2022). "Apple will allow Linux VMs to run Intel apps with Rosetta in macOS Ventura". Ars Technica. Retrieved January 6, 2023.
- ^ "Virtualization - Running Intel Binaries in Linux VMs with Rosetta". Apple Developer. Retrieved January 6, 2023.
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 at the Wayback Machine (archived February 8, 2006)
- Does it ARM? – Rosetta 2 compatibility index