Rosetta (software)
![]() PowerPC application (Microsoft Word for Mac 2004) running on OS X for Intel | |
Developer(s) | Apple Inc. |
---|---|
Operating system | Mac OS X |
Type | PowerPC binary translation |
Website | http://www.apple.com/rosetta |
Rosetta is a lightweight dynamic translator for Mac OS X distributed by Apple. It enables applications compiled for the PowerPC family of processors to run on Apple systems that use Intel processors. Rosetta is based on Transitive Corporation's QuickTransit technology[1], and it is a key part of Apple's strategy for the transition of their Macintosh line from PowerPC to Intel processors as it enables pre-existing Mac OS X software to run on the new platform without modification. The name is likely a reference to the Rosetta Stone, whose discovery made it possible to comprehend and translate Egyptian hieroglyphs. Rosetta was formerly the code name for the handwriting recognition engine in the Apple Newton PDA.[2]
Rosetta has no GUI, leading Apple to describe Rosetta as "the most amazing software you'll never see". [3]
Compatibility
Mac transition to Intel processors |
---|
![]() |
Rosetta is part of the Mac OS X for Intel operating system. It translates G3, G4 and AltiVec instructions; however, it does 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 processors) are well suited to translation via Rosetta, while applications with high computational needs (such as raytracers or Photoshop) are not[4]. Pre-existing PowerPC versions of Apple "Pro" media-production applications (such as Final Cut, Motion, Aperture and Logic Pro, et al) are not supported by Rosetta, and require a "crossgrade" to a universal binary version to work on Intel-based Macs.
In general, Rosetta does not run the following[5]:
- The Classic environment, and thus anything built for Mac OS 9 or below.
- Code that inserts preferences into the System Preferences pane.
- Applications that require a G5 processor.
- Screen savers
- Kernel extensions, and applications that depend on them.
- Bundled Java applications or Java applications with JNI libraries that can’t be translated.
- Java applets in Rosetta-translated applications. That means a PowerPC-only web browser application (such as Microsoft's legacy Internet Explorer for Mac) will not be able to load Java applets; an Intel-ready browser is needed (such as Safari, Camino, Firefox or Opera from version 9 and on).
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 too), 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.
See also
- 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 - combined PPC/68k application that ran on older Macintoshes.
References
- ^ "The brains behind Apple's Rosetta: Transitive". CNET News.com. Retrieved 2007-07-04.
- ^ http://query.nytimes.com/gst/fullpage.html?res=9902EEDB1539F930A25752C1A963958260&sec=&spon=&pagewanted=all
- ^ "Apple (UK and Ireland) - Rosetta". Apple. Retrieved 2007-08-25.
- ^ "Rosetta". Universal Binary Programming Guidelines, Second Edition. Apple. Retrieved 2007-07-04.
- ^ "What Can Be Translated?". Universal Binary Programming Guidelines, Second Edition. Apple. Retrieved 2007-07-04.