Rosetta (software)
Encyclopedia
Rosetta was a lightweight and dynamic binary translator for Mac OS X
which Apple released in 2006 when it transitioned the Macintosh from PowerPC to Intel processors. It allowed pre-existing software to run on the new systems without modification.
The software was based on Transitive Corporation's QuickTransit
technology. It had no graphical user interface
, which led Apple to describe Rosetta as "the most amazing software you'll never see."
Rosetta was initially included with Mac OS X v10.4.4, the version that was released with the first Intel-based Macintosh models.
In Mac OS X v10.6
("Snow Leopard"), Rosetta was not included by default but there is an option in the installer for the user to include it or it could be automatically downloaded by the system if needed at a later time.
Mac OS X v10.7 ("Lion") did not include or support Rosetta. Therefore, Lion drops support for all PowerPC applications.
The name is likely a reference to the Rosetta Stone
, the discovery of which made it possible to comprehend and translate Egyptian hieroglyphs.
, G4
, and AltiVec
instructions; however, it did not translate G5 instructions. Therefore, applications that rely on G5-specific instruction sets must be modified by their developers to work on Intel-based Macs. According to Apple, applications with heavy user interaction but low computational needs (such as word processor
s) are well suited to translation via Rosetta, while applications with high computational needs (such as raytracers or Adobe Photoshop
) are not.
Pre-existing PowerPC versions of Apple "Pro" media-production applications (such as Final Cut Pro
, Motion, Aperture and Logic Pro) are not supported by Rosetta, and require a "crossgrade" to a universal binary
version to work on Intel-based Macs.
Specific items that Rosetta does not run include:
The reasons for Rosetta’s lesser capabilities as compared with Apple’s earlier 68k emulator for PPCs
lie within its implementation: Rosetta is merely a userland program that can only intercept and emulate userland code, while the older emulator was integrated with the system at a much lower level. The 68k emulator was given access to 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 (later used for multiprocessing under Mac OS 8.6 and later), which means that the nanokernel was able to intercept PowerPC interrupts, translate them to 68k interrupts (then doing a mixed mode switch, if necessary), and then executing 68k code to handle the interrupts. This even allowed lines of 68k and PPC code to be mixed within the same source file of a fat application
. While a similar effect could likely have been achieved for Mac OS X by running Rosetta within XNU
, Apple instead chose to implement Rosetta as a userland process to avoid troublesome debugging and the potential for security holes.
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
which Apple released in 2006 when it transitioned the Macintosh from PowerPC to Intel processors. It allowed pre-existing software to run on the new systems without modification.
The software was based on Transitive Corporation's QuickTransit
QuickTransit
QuickTransit was a cross-platform virtualization program developed by Transitive Corporation. It allowed software compiled for one specific processor and operating system combination to be executed on a different processor and/or operating system architecture without source code or binary...
technology. It had no graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
, which led Apple to describe Rosetta as "the most amazing software you'll never see."
Rosetta was initially included with Mac OS X v10.4.4, the version that was released with the first Intel-based Macintosh models.
In Mac OS X v10.6
Mac OS X v10.6
Mac OS X Snow Leopard is the seventh major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers.Snow Leopard was publicly unveiled on June 8, 2009 at the Apple Worldwide Developers Conference...
("Snow Leopard"), Rosetta was not included by default but there is an option in the installer for the user to include it or it could be automatically downloaded by the system if needed at a later time.
Mac OS X v10.7 ("Lion") did not include or support Rosetta. Therefore, Lion drops support for all PowerPC applications.
The name is likely a reference to the Rosetta Stone
Rosetta Stone
The Rosetta Stone is an ancient Egyptian granodiorite stele inscribed with a decree issued at Memphis in 196 BC on behalf of King Ptolemy V. The decree appears in three scripts: the upper text is Ancient Egyptian hieroglyphs, the middle portion Demotic script, and the lowest Ancient Greek...
, the discovery of which made it possible to comprehend and translate Egyptian hieroglyphs.
Compatibility
Rosetta was part of Mac OS X for Intel operating systems prior to Lion. It translated G3PowerPC G3
The PowerPC 7xx is a family of third generation 32-bit PowerPC microprocessors designed and manufactured by IBM and Motorola . This family is called the PowerPC G3 by its well-known customer Apple Computer...
, G4
PowerPC G4
PowerPC G4 is a designation used by Apple Computer to describe a fourth generation of 32-bit PowerPC microprocessors. Apple has applied this name to various processor models from Freescale, a former part of Motorola....
, and AltiVec
AltiVec
AltiVec is a floating point and integer SIMD instruction set designed and owned by Apple, IBM and Freescale Semiconductor, formerly the Semiconductor Products Sector of Motorola, , and implemented on versions of the PowerPC including Motorola's G4, IBM's G5 and POWER6 processors, and P.A. Semi's...
instructions; however, it did not translate G5 instructions. Therefore, applications that rely on G5-specific instruction sets must be modified by their developers to work on Intel-based Macs. According to Apple, applications with heavy user interaction but low computational needs (such as word processor
Word processor
A word processor is a computer application used for the production of any sort of printable material....
s) are well suited to translation via Rosetta, while applications with high computational needs (such as raytracers or Adobe Photoshop
Adobe Photoshop
Adobe Photoshop is a graphics editing program developed and published by Adobe Systems Incorporated.Adobe's 2003 "Creative Suite" rebranding led to Adobe Photoshop 8's renaming to Adobe Photoshop CS. Thus, Adobe Photoshop CS5 is the 12th major release of Adobe Photoshop...
) are not.
Pre-existing PowerPC versions of Apple "Pro" media-production applications (such as Final Cut Pro
Final Cut Pro
Final Cut Pro is a non-linear video editing software developed by Macromedia Inc. and then Apple Inc. The most recent version, Final Cut Pro X, runs on Mac personal computers powered by Mac OS X version 10.6.7 or later and using Intel processors...
, Motion, Aperture and Logic Pro) are not supported by Rosetta, and require a "crossgrade" to a universal binary
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...
version to work on Intel-based Macs.
Specific items that Rosetta does not run include:
- The Classic environmentClassic (Mac OS X)Classic, or Classic Environment, was a hardware and software abstraction layer in Mac OS X that allowed applications compatible with Mac OS 9 to run on the Mac OS X operating system...
, and thus any non-Carbon application built for Mac OS 9Mac OS 9Mac OS 9 is the final major release of Apple's Mac OS before the launch of Mac OS X. Introduced on October 23, 1999, Apple positioned it as "The Best Internet Operating System Ever," highlighting Sherlock 2's Internet search capabilities, integration with Apple's free online services known as...
or earlier - Code that inserts preferences into the System Preferences pane
- Applications that require a G5 processor
- Applications that require precise exception handling
- Screen savers
- Kernel extensions, and applications that depend on them
- Bundled Java applications or Java applications with JNIJava Native InterfaceThe Java Native Interface is a programming framework that enables Java code running in a Java Virtual Machine to call and to be called by native applications and libraries written in other languages such as C, C++ and assembly.-Purpose and features:JNI enables one to write native methods to...
libraries that can’t 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 reasons for Rosetta’s lesser capabilities as compared with Apple’s earlier 68k emulator for PPCs
Mac 68K emulator
The Mac 68K emulator was a software emulator built into all versions of the Mac OS for PowerPC. This emulator permitted the running of applications and system code that were originally written for the 680x0 based Macintosh models. The emulator was completely seamless for users, and reasonably...
lie within its implementation: Rosetta is merely a userland program that can only intercept and emulate userland code, while the older emulator was integrated with the system at a much lower level. The 68k emulator was given access to the very lowest levels of the OS by being at the same level as, and tightly connected to, the Mac OS nanokernel
Mac OS nanokernel
Before Mac OS X, PowerPC versions of the Mac OS were based on a nanokernel, or extremely simple operating system kernel. The initial revision of this software is an extremely simple, single tasking system which delegates most tasks to an emulator running the Motorola 68K version of the operating...
on PPC Macs (later used for multiprocessing under Mac OS 8.6 and later), which means that the nanokernel was able to intercept PowerPC interrupts, translate them to 68k interrupts (then doing a mixed mode switch, if necessary), and then executing 68k code to handle the interrupts. This even allowed lines of 68k and PPC code to be mixed within the same source file of a fat application
Fat binary
A fat binary is a computer program with code native to multiple Instruction sets which can consequently be run on multiple processor types. The usual method of implementation is to include a version of the machine code for each instruction set, preceded by code compatible with all operating...
. While a similar effect could likely have been achieved for Mac OS X by running Rosetta within XNU
XNU
XNU is the computer operating system kernel that Apple Inc. acquired and developed for use in the Mac OS X operating system and released as free and open source software as part of the Darwin operating system...
, Apple instead chose to implement Rosetta as a userland process to avoid troublesome debugging and the potential for security holes.
See also
- Mac 68K emulatorMac 68K emulatorThe Mac 68K emulator was a software emulator built into all versions of the Mac OS for PowerPC. This emulator permitted the running of applications and system code that were originally written for the 680x0 based Macintosh models. The emulator was completely seamless for users, and reasonably...
- lower level program used for a similar purpose during 680x0 to PowerPCPowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
transition - Universal binaryUniversal binaryA universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...
- 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