Rosetta (Apple)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Juni 2016 um 17:59 Uhr durch PerfektesChaos (Diskussion | Beiträge) (tk k). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen
Rosetta
Basisdaten

Entwickler Apple Inc.
Erscheinungsjahr 10. Januar 2006
Betriebssystem Mac OS X 10.4.4–10.6.8 (Intel)
Kategorie PowerPC Binär-Übersetzung
Lizenz proprietär
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

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 PowerPC ist Big-Endian, Intels x86-Prozessoren sind Little-Endian).

Damit bisher entwickelte Software auch auf den neuen Intel-Macs genutzt werden konnte, lizenzierte Apple Software der Firma Transitive Technologies, die schon seit einigen Jahren Konvertierungsprogramme für unterschiedliche Prozessoren anbot, 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, sie enthalten z. B. Code für 32-Bit- und 64-Bit-x86-Prozessoren.

Arbeitsweise

Rosetta ist ein sogenannter Dynamic Binary Translator, es läuft also im selben 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 eine Funktion 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

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

Einzelnachweise

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