Rosetta (Apple)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Rosetta
Entwickler Apple Inc.
Betriebssystem Mac OS X 10.4.4–10.6.8 (Intel)
Kategorie PowerPC Binär-Übersetzung
Lizenz proprietär
http://www.apple.com/asia/rosetta/

Rosetta ist der Name eines Frameworks, das zwischen 2006 und 2011 Bestandteil des Betriebssystems Mac OS X war und es ermöglichte, für PowerPC-Prozessoren kompilierte Programme unverändert auf x86-Prozessoren auszuführen. Der Name ist angelehnt an den Stein von Rosetta, der wesentlich zur Entzifferung der Hieroglyphen beitrug.

Hintergründe[Bearbeiten]

Im Jahr 2005 kündigte Apple an, von den seit 1994 eingesetzten, gemeinsam mit IBM und Motorola entwickelten PowerPC-Prozessoren auf x86-Prozessoren von Intel umzusteigen. Neben der völlig anderen Assemblersprache (Befehlssatz/Register) besteht ein weiterer wesentlicher Unterschied der Prozessortypen in der Verarbeitung der Byte-Reihenfolge (der PPC hat Big-Endian, der x86 hat Little-Endian).

Damit bisher entwickelte Software auch auf den neuen Intel-Macs genutzt werden konnte, lizenzierte Apple Technologien der Firma Transitive Technologies, die schon seit einigen Jahren Konvertierungsprogramme für unterschiedliche Prozessoren anbietet, und vermarktete die eigene Implementation unter dem Namen Rosetta.[1]

Gleichzeitig entwickelte Apple die eigenen Entwicklerwerkzeuge weiter und ermöglichte die Entwicklung von Universal Binaries, bei denen der ausführbare Code für mehrere Prozessorarchitekturen in einer einzigen Programmdatei verpackt ist.

Während die Betriebssysteme Mac OS X 10.4 und 10.5 sowohl PowerPC- als auch Intel-Macs unterstützten, ist Mac OS X seit Version 10.6 nur noch für Intel-Macs erhältlich. Seit der Veröffentlichung von Mac OS X 10.7 im Juli 2011 ist Rosetta kein Bestandteil des Betriebssystems mehr; für PowerPC-Prozessoren entwickelte Software kann daher auf aktuellen Macs nicht mehr ohne Weiteres ausgeführt werden. Universal Binaries sind jedoch nach wie vor ausführbar.

Arbeitsweise[Bearbeiten]

Rosetta ist ein sogenannter Dynamic Binary Translator, es läuft also im gleichen Prozess wie das auszuführende Programm und übersetzt einzelne Codeblöcke erst dann, wenn sie vom Programm aufgerufen werden. Teile des Programms, die nicht ausgeführt werden (zum Beispiel weil der Nutzer ein Feature des Programms nicht nutzt) werden also auch nicht übersetzt.[2]

Bei der Übersetzung wird der aufgerufene PowerPC-Codeblock zunächst in ein prozessorunabhängiges Zwischenformat übersetzt, woraus anschließend für die Zielarchitektur optimierter Code erzeugt wird. Dieser native Code wird dann auf der Hardware ausgeführt. Vergleichbare Software kommt teils auch ohne die Nutzung eines Zwischenformats aus, dieses wurde von Transitive vermutlich eingeführt, weil deren Software mehrere Quell- und Zielarchitekturen unterstützte.[3]

Im Gegensatz zu einer Emulation, bei der einzelne Anweisungen übersetzt werden, ermöglicht die blockweise Übersetzung von aufeinanderfolgenden Anweisungen ein semantisches Verständnis des zu übersetzenden Codeblocks und somit eine Optimierung des aus dem Zwischenformat erzeugten nativen Programmcodes.[1] Apple betonte daher selbst, dass keine Emulation stattfindet.[4]

Einschränkungen[Bearbeiten]

Rosetta versteht Programmcode, der für einen PowerPC G3 und PowerPC G4 geschrieben wurde, und kann den gesamten AltiVec-Befehlssatz übersetzen. Software, die einen G5 voraussetzt, ist dagegen nicht ausführbar, dies betrifft jedoch nur sehr wenige Programme. Außerdem verweigert sich Rosetta allen hardwarenahen Funktionen; Kernel-Module oder Treiber für Scanner, Tastaturen und Audiogeräte lassen sich damit beispielsweise nicht übersetzen.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. a b  Lucas Graves: Can Apple Make The Switch? Interview mit Transitive-CEO Bob Wiederhold. In: Wired Magazine. Nr. 8, 2005 (online, abgerufen am 24. Juli 2011).
  2. Universal Binary Programming Guidelines. Apple, abgerufen am 8. Juni 2005 (pdf, englisch). Die verwendeten Ausschnitte sind auf daringfireball.net wiedergegeben.
  3. John Stokes: Thinking about Apple's Rosetta in light of Transmeta. arstechnica.com, August 2005, abgerufen am 24. Juli 2011 (englisch).
  4. Rosetta auf Apple.de. Apple, archiviert vom Original am 21. Dezember 2010, abgerufen am 24. Juli 2011 (englisch).