Rosetta (software)#Rosetta 2
{{Short description|Operating system component}}
{{For|other software products or projects named "Rosetta"|Rosetta Stone (software)|Rosetta (disambiguation)}}
{{Use mdy dates|date=March 2025}}
{{Infobox software
| name = Rosetta
| logo =
| screenshot = Rosetta Installation Prompt.jpg
| screenshot size =
| caption = Rosetta 2 installation prompt
| developer = Apple Inc.
| latest_release_version =
| latest_release_date =
| operating_system = Mac OS X 10.4.4–10.6.8 (Intel host, emulating PowerPC)
macOS 11.0–present (ARM host, emulating Intel)
ARM Linux guest emulating Intel{{cite web|url=https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta|title=Running Intel Binaries in Linux VMs with Rosetta | publisher=Apple Inc | access-date=August 7, 2022}}
| genre = Binary translation, emulation
| license =
| website = https://support.apple.com/en-us/102527
}}
Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different instruction set architectures. It enables a transition to newer hardware, by automatically translating software. The name is a reference to the Rosetta Stone, the artifact which enabled translation of Egyptian hieroglyphs.{{cite web|url=https://www.macworld.com/article/178643/intelimacs.html|title=Core Duo iMacs debut speedy new chips|first=Henry|last=Norr|date=January 27, 2006|website=Macworld}}
The first version of Rosetta was introduced in 2006 in Mac OS X Tiger as part of the Mac transition from PowerPC processors to Intel processors, allowing PowerPC applications to run on Intel-based Macs. Support for Rosetta was dropped since Mac OS X Lion (10.7) in 2011. Rosetta 2 was introduced in 2020 as a component of macOS Big Sur, and as part of the Mac transition from Intel processors to Apple silicon, allowing Intel applications to run on Apple silicon-based Macs.{{cite web|last1=Warren|first1=Tom|date=June 22, 2020|title=Apple is switching Macs to its own processors starting later this year|url=https://www.theverge.com/2020/6/22/21295475/apple-mac-processors-arm-silicon-chips-wwdc-2020|access-date=June 22, 2020|website=The Verge|language=en}}
Background
Macintosh has used CPUs with several different instruction set architectures (ISA): the Motorola 68000 series, PowerPC, Intel x86, and ARM64 in Apple silicon. Each ISA is incompatible, necessitating a transition plan based on a software layer to emulate the previous ISA on the succeeding one.
With the launch of Power Macintosh, the Mac 68K emulator is part of System 7.1.2 and later. This emulator uses PowerPC features and is embedded at the lowest levels of the operating system, integrated with the Mac 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 same fat binary.
Rosetta
{{AppleIntel}}
Apple launched Rosetta in 2006 upon the Mac transition to Intel processors from PowerPC. It is in Mac OS X Tiger 10.4.4 "Tiger", the version that launched the x86-based Macs, and allows many unmodified PowerPC applications to automatically run on Intel-based Mac computers. Rosetta is based on QuickTransit technology.{{cite web|date=June 8, 2005|title=The brains behind Apple's Rosetta: Transitive|url=https://www.cnet.com/tech/services-and-software/the-brains-behind-apples-rosetta-transitive/|access-date=January 9, 2023|publisher=CNET}} It has no graphical user interface, and launches transparently, which led Apple to describe Rosetta as "the most amazing software you'll never see".{{cite web|title=Rosetta|url=https://www.apple.com/rosetta/|url-status=dead|archive-url=https://web.archive.org/web/20060113055505/http://www.apple.com/rosetta/|archive-date=January 13, 2006|access-date=September 5, 2011|publisher=Apple}} Rosetta is optionally installable in Mac OS X 10.6 "Snow Leopard".{{cite web|author=AppleInsider Staff|date=February 26, 2011|title=Mac OS X Lion drops Front Row, Java runtime, Rosetta|url=http://www.appleinsider.com/articles/11/02/26/mac_os_x_lion_drops_front_row_java_runtime_rosetta.html|url-status=live|archive-url=https://web.archive.org/web/20140429192802/http://appleinsider.com/articles/11/02/26/mac_os_x_lion_drops_front_row_java_runtime_rosetta.html|archive-date=April 29, 2014|access-date=February 27, 2011|work=AppleInsider|publisher=AppleInsider, Inc}} Rosetta is neither included nor supported in Mac OS X 10.7 "Lion" (released in 2011) or later.
Because of the greater architectural differences between Intel and PowerPC processors, Rosetta operates at a higher level than the 68000 emulator does, as a user-level program that can only intercept and emulate user-level code. It translates G3, G4, and AltiVec instructions, but not G5. 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 as word processors) would be best suited to use with Rosetta, and applications with high computational needs (such as games, AutoCAD, or Photoshop) would not.{{cite web | url=https://developer.apple.com/legacy/mac/library/documentation/MacOSX/Conceptual/universal_binary/universal_binary.pdf | title=Rosetta | work=Universal Binary Programming Guidelines, Second Edition | publisher=Apple | access-date=September 5, 2011 | url-status=dead | archive-url=https://web.archive.org/web/20120803080328/http://developer.apple.com/legacy/mac/library/documentation/MacOSX/Conceptual/universal_binary/universal_binary.pdf | archive-date=August 3, 2012 | df=mdy-all }}
Rosetta 2
{{AppleARM}}
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.{{Cite web|last=Mayo|first=Benjamin|date=June 22, 2020|title=Apple announces Mac architecture transition from Intel to its own ARM chips, offers emulation path|url=https://9to5mac.com/2020/06/22/arm-mac-apple/|access-date=June 23, 2020|website=9to5Mac|language=en-US}}
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.{{cite video|url=https://developer.apple.com/videos/play/wwdc2020/101/|title=WWDC2020 Keynote|time=1h39m37s|quote=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.|publisher=Apple Inc.|date=June 22, 2020}}
Rosetta 2's performance has been praised greatly.{{Cite web|last=Evans|first=Jonny|date=November 19, 2020|title=Everything you need to know about Rosetta 2 on Apple Silicon Macs|url=https://www.computerworld.com/article/3597949/everything-you-need-to-know-about-rosetta-2-on-apple-silicon-macs.html|access-date=December 8, 2020|website=Computerworld|language=en}}{{Cite web|title=Yeah, Apple's M1 MacBook Pro is powerful, but it's the battery life that will blow you away|url=https://techcrunch.com/2020/11/17/yeah-apples-m1-macbook-pro-is-powerful-but-its-the-battery-life-that-will-blow-you-away/|access-date=December 8, 2020|website=TechCrunch|date=November 17, 2020 |language=en-US}} 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-64 memory ordering in the M1 SoC.{{Cite journal |last=Wrenger |first=Lars |last2=Töllner |first2=Dominik |last3=Lohmann |first3=Daniel |date=April 1, 2024 |title=Analyzing the memory ordering models of the Apple M1 |url=https://linkinghub.elsevier.com/retrieve/pii/S1383762124000390 |journal=Journal of Systems Architecture |volume=149 |pages=103102 |doi=10.1016/j.sysarc.2024.103102 |issn=1383-7621}} The SOC also has dedicated instructions for computing x86 flags.{{cite web |last1=Dougall |first1=J |title=Why is Rosetta 2 fast? |url=https://dougallj.wordpress.com/2022/11/09/why-is-rosetta-2-fast/ |access-date=August 15, 2023 |language=en |date=November 9, 2022 |quote=ARM flag-manipulation extensions... Apple’s secret extension...}}
Since macOS Ventura, Linux guest operating system virtual machines can install Rosetta 2 as a guest runtime binary to run x86-64 Linux apps.{{cite web |last1=Proven |first1=Liam |title=Apple offers improved Linux support in macOS 13 |url=https://www.theregister.com/2022/06/09/apple_linux_support_macos/ |website=The Register |access-date=January 6, 2023 |language=en |date=June 9, 2022}}{{cite web |last1=Cunningham |first1=Andrew |title=Apple will allow Linux VMs to run Intel apps with Rosetta in macOS Ventura |url=https://arstechnica.com/gadgets/2022/06/macos-ventura-will-extend-rosetta-support-to-linux-virtual-machines/ |website=Ars Technica |access-date=January 6, 2023 |language=en-us |date=June 7, 2022}}
See also
- {{Section link|Fat binary|Apple's fat binary}} – combined 68k/PPC applications that run natively on both processors
- Mac 68k emulator – a similar feature in classic Mac OS that translates 680x0 instructions to PowerPC instructions
- 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
{{Reflist}}
External links
- {{webarchive |url=https://web.archive.org/web/20110107211041/http://www.apple.com/rosetta |date=January 7, 2011 |title=Apple Rosetta Web site }}
- {{webarchive |url=https://web.archive.org/web/20080914184751/http://www.transitive.com |date=September 14, 2008 |title=Transitive Corporation web site }}
- {{webarchive |url=https://web.archive.org/web/20060208152806/http://guides.macrumors.com/Rosetta_incompatibilities |date=February 8, 2006 |title=Rosetta compatibility index}}
- [https://doesitarm.com Does it ARM?]{{snd}} Rosetta 2 compatibility index
{{macOS}}
{{DEFAULTSORT:Rosetta (Software)}}
Category:MacOS-only software made by Apple Inc.
Category:MacOS emulation software
Category:Department of Computer Science, University of Manchester