Rosetta (software)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Rosetta
Word OSX intel.jpg
PowerPC application (Microsoft Word for Mac 2004) running on OS X for Intel
Developer(s) Apple Inc.
Operating system Mac OS X 10.4–10.6 (Intel)
Type PowerPC binary translation

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.[1] It had no graphical user interface, which led Apple to describe Rosetta as "the most amazing software you'll never see."[2]

Rosetta was initially included with Mac OS X v10.4.4, the version that was released with the first Intel-based Macintosh models.[3]

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.[4]

The name is likely a reference to the Rosetta Stone, the discovery of which made it possible to comprehend and translate Egyptian hieroglyphs.

Contents

[edit] Compatibility

Apple's transition to Intel processors

Architecture
Universal binary
Boot Camp
Rosetta

Rosetta was part of Mac OS X for Intel operating systems prior to Lion. It translated G3, 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 processors) are well suited to translation via Rosetta, while applications with high computational needs (such as raytracers or Adobe Photoshop) are not.[5] 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:[6]

  • 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 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 JNI 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 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.[citation needed]

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages