Rosetta (binary translation software)

Rosetta (binary translation software)

Infobox_Software | name = Rosetta
logo =


caption = PowerPC application (Microsoft Word for Mac 2004) running on OS X for Intel
developer = Apple Inc.
latest_release_version =
latest_release_date =
operating_system = Mac OS X
genre = PowerPC binary translation
license =
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 [cite web | url=http://news.com.com/The+brains+behind+Apples+Rosetta+Transitive/2100-1016_3-5736190.html | title=The brains behind Apple's Rosetta: Transitive | publisher=CNET News.com | accessdate=2007-07-04] , 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. [http://query.nytimes.com/gst/fullpage.html?res=9902EEDB1539F930A25752C1A963958260&sec=&spon=&pagewanted=all]

Rosetta has no GUI, leading Apple to describe Rosetta as "the most amazing software you'll never see". [cite web | url=http://www.apple.com/uk/rosetta/ | title=Apple (UK and Ireland) - Rosetta | publisher=Apple | accessdate=2007-08-25]

Compatibility

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 [cite web | url=http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_exec_a/chapter_950_section_1.html | title=Rosetta | work=Universal Binary Programming Guidelines, Second Edition | publisher=Apple | accessdate=2007-07-04] . 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 [http://www.apple.com/r/store/universal/ "crossgrade"] to a universal binary version to work on Intel-based Macs.

In general, Rosetta does "not" run the following [cite web
url=http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_exec_a/chapter_950_section_2.html
title=What Can Be Translated?
work=Universal Binary Programming Guidelines, Second Edition
publisher=Apple
accessdate=2007-07-04
] :
*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.

ee 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

External links

* [http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary.pdf Apple Universal Binary Programming Guidelines]
* [http://www.apple.com/pr/library/2005/jun/06intel.html Apple press release]
* [http://www.transitive.com/ Transitive Corporation web site]
* [http://guide.apple.com/action.lasso?-database=MacOSGuide&-layout=cgi_search&-response=/ussearch/hitlist_universal.html&-op=bw&binaries=Universal&-maxRecords=20&-search Apple's list of Universal Applications]
* [http://wiki.osx86project.org/wiki/index.php/X86_software List of Universal Binary Applications at osx86project.org]
* [http://guides.macrumors.com/Rosetta_incompatibilities Rosetta compatibility index]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Binary translation — In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set.There is static binary translation, where an… …   Wikipedia

  • Rosetta (disambiguation) — Rosetta may refer to:As a placename: * Rosetta, the anglicised name of the city of Rashid, Egypt, famous as the location of the Rosetta Stone * Rosetta, Tasmania, suburb of Hobart, Tasmania, Australia * Rosetta, Belfast in Northern IrelandAs a… …   Wikipedia

  • Classic Environment — Mac OS Classic redirects here. For classic versions of Mac OS, see Mac OS. Classic Environment Classic OS applications running alongside native Mac OS X applications. Developer(s) Apple Inc. (formerly Apple Computer, Inc.) …   Wikipedia

  • Classic (Mac OS X) — Classic s performance is also generally acceptable, with a few exceptions. Most of an application is run directly as PowerPC code. (This is likely a major reason why Classic is not supported on Intel based Macs.) Motorola 68k code is handled by… …   Wikipedia

  • Transitive Corp. — Transitive Corporation is a software company providing solutions that allow the transportability of software applications across multiple hardware platforms. The company’s QuickTransit cross platform virtualization solution allows software… …   Wikipedia

  • Mac OS X — OSX redirects here. For other uses, see OSX (disambiguation). Mac OS X …   Wikipedia

  • Mac OS X Tiger — Mac OS X v10.4 Tiger Part of the Mac OS X family …   Wikipedia

  • Backward compatibility — In the context of telecommunications and computing, a device or technology is said to be backward or downward compatible if it can work with input generated by an older device.[1] If products designed for the new standard can receive, read, view… …   Wikipedia

  • Lx86 — PowerVM Lx86, formerly known as System p AVE , is a binary translation layer for IBM s System p servers. It enables 32 bit x86 Linux binaries to run unmodified on the Power Architecture based hardware. IBM is relying on this feature to migrate… …   Wikipedia

  • Dynamic recompilation — In computer science, dynamic recompilation (sometimes abbreviated to dynarec or the pseudo acronym DRC) is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”