Rosetta (Software) - Rosetta (software)

Rosetta
Word OSX intel.jpg
PowerPC-Anwendung (Microsoft Word für Mac 2004) unter Mac OS X für Intel in Rosetta
Entwickler Apple Inc.
Betriebssystem Mac OS X 10.4.4–10.6.8 (Intel)
macOS 11.0–heute (ARM)
Typ PowerPC- Binärübersetzung (Originalversion)
Intel- Binärübersetzung (Rosetta 2)

Rosetta ist ein dynamischer Binärübersetzer, der von Apple Inc. für macOS entwickelt wurde , eine Anwendungskompatibilitätsschicht zwischen verschiedenen Befehlssatzarchitekturen . Es gibt Entwicklern und Verbrauchern eine Übergangsfrist, in der sie ihre Anwendungssoftware aktualisieren können, damit sie auf neuerer Hardware läuft, indem sie für die Ausführung auf der anderen Architektur "übersetzt" wird. Der Name "Rosetta" ist ein Hinweis auf den Rosetta-Stein , das Artefakt, das die Übersetzung ägyptischer Hieroglyphen ermöglichte .

Die erste Version von Rosetta, die 2006 als Komponente von Mac OS X Tiger eingeführt wurde , war Teil des Mac-Übergangs von PowerPC-Prozessoren zu Intel-Prozessoren , wodurch PowerPC- Anwendungen auf Intel-basierten Macs ausgeführt werden konnten. Die zweite Version, die 2020 als Komponente von macOS Big Sur eingeführt wurde , ist Teil des Mac-Übergangs von Intel-Prozessoren zu Apple-Silizium , sodass Intel-Anwendungen auf Apple-Silizium- Macs ausgeführt werden können.

Hintergrund

Apple hat in seiner Macintosh- Reihe von Computern vier Serien von CPU-Architekturen verwendet: die Motorola 68000-Serie , die PowerPC-Serie , die Intel Core-Serie und seine eigene Serie von ARM-Prozessoren . Jeder Übergang hat Software, die für die frühere Architektur erstellt wurde, mit der neuen inkompatibel gemacht, was einen Bedarf an Software geschaffen hat, die es der neueren Plattform ermöglicht , die vorherige zu emulieren .

Bei der Einführung seiner ersten PowerPC-Systeme hat Apple Software in System 7.1.2 und spätere Versionen des Betriebssystems integriert, um ein System der 68000-Serie zu emulieren . Dieser Emulator nutzt die in den PowerPC-Prozessoren integrierten Funktionen und greift auf die untersten Ebenen des Betriebssystems zu, die auf derselben Ebene wie der Mac OS-Nanokernel laufen und eng mit ihm verbunden sind . Dies bedeutet, dass der Nanokernel in der Lage ist, PowerPC-Interrupts abzufangen, sie in 68k-Interrupts zu übersetzen (und dann gegebenenfalls einen Mixed-Mode-Switch durchzuführen) und dann 68k-Code auszuführen, um die Interrupts zu verarbeiten. Dadurch können Zeilen von 68k- und PowerPC-Code innerhalb derselben fetten Binärdatei eingestreut werden .

Rosetta

Apple veröffentlichte die erste Version von Rosetta im Jahr 2006 , als es begann , die Macintosh - Linie vom PowerPC auf den Intel - Prozessor umzustellen . Es war ursprünglich in Mac OS X v10.4.4 "Tiger", der Version, die mit den ersten Intel- basierten Macs veröffentlicht wurde, enthalten und ermöglicht die Ausführung vieler PowerPC- Anwendungen auf Intel-basierten Mac-Computern ohne Modifikation. Rosetta basiert auf der QuickTransit- Technologie. Es hat keine Benutzeroberfläche und startet bei Bedarf ohne Benachrichtigung des Benutzers, was dazu führte, dass Apple es als "die erstaunlichste Software, die Sie nie sehen werden", bezeichnete. Rosetta wird in Mac OS X 10.6 "Snow Leopard" nicht standardmäßig installiert , ist jedoch als installierbare Option verfügbar. Rosetta ist in Mac OS X v10.7 "Lion" oder höher weder enthalten noch wird es unterstützt , wodurch PowerPC-Anwendungen nicht ausgeführt werden können.

Aufgrund der größeren Architekturunterschiede zwischen Intel- und PowerPC-Prozessoren arbeitet Rosetta auf einer höheren Ebene als der 68000-Emulator, als ein Programm auf Benutzerebene , das nur Code auf Benutzerebene abfangen und emulieren kann. Es übersetzt G3- , G4- und AltiVec- Befehle, aber keine G5- Befehle. Obwohl die meiste kommerzielle Software für PowerPC-basierte Macs mit diesen Anforderungen kompatibel war (zu dieser Zeit waren G4-Systeme noch weit verbreitet), mussten alle Anwendungen, die auf G5-spezifischen Anweisungen beruhten, von ihren Entwicklern modifiziert werden, um auf Rosetta-unterstützten Intel- basierte Macs. Apple weist darauf hin, dass Anwendungen mit starker Benutzerinteraktion, aber geringem Rechenbedarf (wie Textverarbeitungsprogramme ) am besten für die Verwendung mit Rosetta geeignet sind, während Anwendungen mit hohem Rechenbedarf (wie Spiele, AutoCAD oder Photoshop ) dies nicht tun .

Rosetta unterstützt auch Folgendes nicht:

  • Die Classic-Umgebung und damit alle Nicht-Carbon-Anwendungen, die für Mac OS 9 oder früher erstellt wurden
  • Code, der Einstellungen in den Bereich Systemeinstellungen einfügt
  • Anwendungen, die eine präzise Ausnahmebehandlung erfordern
  • Bildschirmschoner
  • Kernel-Erweiterungen und davon abhängige Anwendungen
  • Gebündelte Java- Anwendungen oder Java-Anwendungen mit JNI- Bibliotheken, die nicht übersetzt werden können
  • Java-Applets in Rosetta-übersetzten Anwendungen, d. h., zum Laden von Java-Applets muss eine native Intel-Webbrowser-Anwendung anstelle einer Legacy-PowerPC-Version verwendet werden

Rosetta 2

Im Jahr 2020 kündigte Apple an, dass Rosetta 2 mit macOS Big Sur gebündelt wird , um den Mac-Umstieg auf Apple-Silizium zu unterstützen . Die Software ermöglicht es, viele Anwendungen, die ausschließlich für die Ausführung auf x86-64- basierten Prozessoren kompiliert wurden, für die Ausführung auf Apple-Silizium zu übersetzen.

Zusätzlich zur Just-in-Time (JIT)-Übersetzungsunterstützung bietet Rosetta 2 eine AOT -Kompilierung ( Ahead-of-Time-Compilierung ), wobei der x86-64-Code nur einmal vollständig übersetzt wird, wenn eine Anwendung ohne eine universelle Binärdatei installiert ist ein Apple-Silizium-Mac.

Die Leistung von Rosetta 2 wurde sehr gelobt. In einigen Benchmarks schnitten reine x86-64-Programme unter Rosetta 2 auf einem Mac mit einem Apple M1-SOC besser ab als nativ auf einem Mac mit einem Intel x86-64-Prozessor. Einer der Hauptgründe, warum Rosetta 2 eine so hohe Übersetzungseffizienz bietet, ist die Unterstützung der x86-64- Speicherordnung im Apple M1 SOC.

Obwohl Rosetta 2 für die meisten Programme funktioniert, funktioniert einige Software überhaupt nicht oder wird als "träge" bezeichnet. Viele Software kann mit den neuen Macs kompatibel gemacht werden, indem der Hersteller die Software neu kompiliert, was oft eine einfache Aufgabe ist; während bei einigen Software (wie Software, die Assembler- Code enthält oder Maschinencode generiert ) die Änderungen, damit sie funktionieren, nicht einfach sind und nicht automatisiert werden können.

Ähnlich wie bei der ersten Version erfordert Rosetta 2 normalerweise keinen Benutzereingriff. Wenn ein Benutzer zum ersten Mal versucht, eine reine x86-64-Anwendung zu starten, fordert macOS ihn auf, Rosetta 2 zu installieren, falls diese noch nicht verfügbar ist. Nachfolgende Starts von x86-64-Programmen werden automatisch per Übersetzung ausgeführt. Es gibt auch eine Option, um eine universelle Binärdatei zu zwingen, als x86-64-Code durch Rosetta 2 zu laufen, sogar auf einem ARM-basierten Computer.

Siehe auch

Verweise

Externe Links