x86-Software auf ARM-Macs: So funktioniert Rosetta 2

25. Juni 2020 09:00 Uhr - Redaktion

Langjährige Mac-Nutzer erinnern sich: Als Apple vor 15 Jahren von PowerPC- auf Intel-Prozessoren wechselte, ermöglichte eine Kompatibilitätsfunktion namens Rosetta die Nutzung von noch nicht angepasster Software auf den neuen Rechnern. Nun feiert Rosetta ein Comeback: Auf Macs mit Apple-eigenen, ARM-basierten Prozessoren wird die Version 2 der Übersetzungstechnologie dafür sorgen, dass sich x86-basierte Software weiternutzen lässt.

Rosetta 2 soll schneller, leistungsfähiger und kompatibler sein als die erste Version bei der PowerPC-auf-Intel-Umstellung - so das Versprechen Apples. Rosetta 2 übersetzt x86-Software automatisch bei der Installation in ARM-kompatiblen Code. Dadurch ist keine Echtzeit-Übersetzung im Betrieb notwendig, was der Performance zugute kommt. Apple hat aber zusätzlich eine Live-Übersetzung für spezifische Bereiche implementiert, beispielsweise für Java-Code oder JavaScript-Just-in-Time-Compiler.

Rosetta 2 sei auch für komplexe Anwendungen und Plug-ins ausgelegt, so Apple weiter. Nicht unterstützt werden Kernel-Extensions und x86-Virtualisierer, gleiches gilt für spezifische Vektor-Befehle von Intel-Prozessoren (AVX, AVX2, and AVX512). In der Entwicklerdokumentation schreibt der Hersteller:

"Für den Benutzer ist Rosetta weitgehend transparent. Wenn eine ausführbare Datei nur Intel-Befehle enthält, startet macOS automatisch Rosetta und beginnt mit dem Übersetzungsprozess. Wenn die Übersetzung abgeschlossen ist, startet das System die übersetzte ausführbare Datei anstelle des Originals. Der Übersetzungsprozess nimmt jedoch Zeit in Anspruch, so dass Benutzer manchmal den Eindruck haben könnten, dass übersetzte Anwendungen langsamer gestartet oder ausgeführt werden."

 
Rosetta 2
 
Rosetta 2 übersetzt x86_64 auf arm64 schon bei der Installation.
Bild: Apple.

 

In der WWDC20-Präsentation demonstrierte Apple die Leistungsfähigkeit von Rosetta 2 anhand von zwei anspruchsvollen Softwaretiteln: Dem Animations- und Modellingprogramm Maya und dem Action-Adventure "Shadow of the Tomb Raider". Diese laufen via Rosetta 2 sehr flüssig auf dem Entwickler-ARM-Mac (Developer Transition Kit, im Mac-mini-Gehäuse), in dem wohlgemerkt eine zwei Jahre alte CPU (A12Z) zum Einsatz kommt. Die für das vierte Quartal erwarteten ersten ARM-Macs werden mit an Sicherheit grenzender Wahrscheinlichkeit über weitaus schnellere Prozessoren verfügen.

Natürlich muss sich Rosetta 2 in der Praxis bei Millionen Anwendern erst noch bewähren, aber zumindest der erste Eindruck ist sehr positiv. Bleibt die Frage, wie lange Rosetta 2 ein Bestandteil von macOS sein wird. Hier wird aktuell viel (und vor allem wild) spekuliert unter Verweis auf die PowerPC-auf-Intel-Umstellung, als Rosetta 1 nur in einer einzigen macOS-Version (Snow Leopard) verfügbar war.

 

 

Ein derartiges Szenario würden wir Stand heute für ARM-Macs ausschließen. Die Situation ist eine ganz andere als vor eineinhalb Jahrzehnten. Es gibt es heute viel, viel mehr Mac-Nutzer als 2005 - laut Apple besteht eine installierte Basis von über 100 Millionen aktiv genutzter Intel-Macs. Das Angebot an Mac-Software ist heute weitaus größer als damals zu PowerPC-Zeiten. Außerdem sind heutzutage die Nutzungszyklen von Hardware wesentlich länger als früher.

Und: Die damalige Umstellung von PowerPC auf Intel war aus der Not geboren und musste schnell gehen, weil PowerPC keinerlei Perspektiven mehr bot und praktisch am Ende war. Bei der Umstellung jetzt hat Apple alle Zeit, die benötigt wird. Zudem will Apple die Intel-Macs noch viele Jahre lang mit neuen macOS-Versionen versorgen. Es deutet sich also eine lange, sehr lange Phase der Koexistenz von Intel-Macs und ARM-Macs, von Intel-Software und ARM-Software an. Und dies impliziert eine lange Notwendigkeit für Rosetta 2.

Kommentare

IMHO gibt es bei diesem Szenario zu beachten, dass nur das ausführende Programm umgewandelt wird, d.h.: virtuelle Maschinen mit X86 Code sind außen vor. Siehe auch die vagen Angaben von VMWare bzw. Parallels, was möglich sein wird. Es ist toll, dass man ein ARM Windows10 oder ein ARM Debian Linux virtualisieren kann, aber das bringt mir gar nichts, wenn die Software (z.B. eine Oracle Datenbank) nicht für ARM Windows oder Linux zur Verfügung steht, sondern nur für x86 Systeme...

Gleiches gilt für alte Mac OS X System Versionen in einer VM, die werden mit großer Wahrscheinlichkeit nicht laufen...

Und eine Emulation mit kvm bzw. qemu wird sicherlich erhebliche Performanceeinbrüche mit sich bringen...

Hoffen wir also, dass MS tatsächlich das ARM Windows mal richtig etablieren kann (Windows RT war ein Reinfall), und dann kann man das wahrscheinlich auch wieder vernünftig in einer VM betreiben...

Ich möchte nicht wieder mit 2 Rechnern durch die Gegend laufen müssen....

Gruß
Kronar

[Anmerkung der Redaktion: 1) Der Umstand, dass Rosetta 2 keine x86-Virtualisierer unterstützt, wird von uns bereits im Artikel erwähnt. 2) Windows 10 für ARM ermöglicht die x86/32-Bit-Emulation - darauf haben wir ebenfalls bereits hingewiesen - und möglicherweise ab Herbst/Winter auch die x86/64-Bit-Emulation. Sofern Microsoft das ARM-Windows-10 für die Virtualisierung via Parallels/VMware freigibt und Apple ebenfalls grünes Licht gibt, könnte also auch auf ARM-Macs bestehende Intel-Windows-Software, natürlich innerhalb gewisser Performance-Grenzen, via Windows-10-ARM-Virtualisierung genutzt werden. Es sei denn, es bestehen - noch unbekannte - Inkompatibilitäten zwischen den ARM-Implementierungen von Apple und Microsoft.]

installieren. Gnädiger weise gibt es wenigstens noch die Option 2, daß es auch ein älteres System sein darf. Fremde Systeme (Linux, Windows, ...) kann man nicht installieren, außer Apple würde sie signieren. Bei den jetzigen T2-Macs gibt es noch die Option fremde Systeme zuzulassen.

Mir ist im Moment auch nicht klar wie unterschiedlich die einzelnen ARM-Plattformen sind. Ob es möglich  ist, Boot-loader von anderen Pattformen zu nutzen. Ich befürchte nicht - es gibt meines Wissens bis jetzt keinen ARM-PC Standard auf dem man aufbauen könnte. Man kann auf einem iPhone auch kein Android installieren - auch mit Jailbreak nicht?

 

Werden per Virtualisierung laufen. Auf der WWDC wurde Linux auf einem Arm-Mac gezeigt.

iMac 19,1 i9-9900K Radeon 64 LC

...benötigen wir die Option, Windows-Software auf Macs laufen zu lassen, u. a. für Microsoft Access, aber auch für etliche kleinere Tools.

So sehr ich mich persönlich auf die neuen Macs mit Apple Silicon freue, hoffe ich doch inständig, dass es in den nächsten Monaten zum Thema Virtualisierung von Windows Neuigkeiten geben wird.

Oder die Apple Silicon CPUs sind so schnell, dass der Performance Abschlag bei der Emulation kaum ins Gewicht fällt. 😉

Emulation des gesamten Systems und der Programme, kenne ich nur mit 80 - 90% Performance-Verlust. Das entspräche   etwa einem Intel-Mac von 2006!

Sollte ARM-Windows verfügbar werden, wäre die Situation etwas besser, da hier das System schon unter ARM läuft, nur die Programme nicht. Aber die Berichte die ich über x86 Programme unter ARM-Windows gelesen habe waren nicht sehr positiv.