Apple hat Geschichte geschrieben, als es die neuen MacBooks mit seinem hauseigenen ARM-basierten Apple M1-Prozessor auf den Markt brachte und nach mehr als einem Jahrzehnt Intel-Prozessoren ersetzte. Bei einem so großen Übergang gab es eine gigantische Aufgabe für Apple, die App-Kompatibilität für M1 aufrechtzuerhalten. Es scheint jedoch, dass Apple es durch seine leistungsstarke Übersetzungsschicht - Rosetta 2 - geschafft hat. Wir haben bereits gesehen, dass Windows unter ARM Benutzer aufgrund von Kompatibilitätsproblemen mit x86-Apps nicht verführen konnte. Was macht Rosetta 2 so leistungsfähig und warum scheint die Windows x86-Emulation dieses Versprechen nicht zu haben? Um die Antwort zu finden, vergleichen wir Apples Rosetta 2 mit der Windows x86-Emulation nebeneinander.
Apples Rosetta 2 vs Windows x86-Emulation: Alles, was Sie wissen müssen
Hier haben wir alle Abschnitte erwähnt, die wir behandelt haben, damit Sie alle Informationen leicht finden können. Sie können auf den Link klicken, um nahtlos zwischen verschiedenen Abschnitten zu wechseln. Inhaltsverzeichnis + -
So funktioniert Apples Rosetta 2?
Nach der Einführung von Rosetta im Jahr 2006 während des PowerPC-Intel-Übergangs hat Apple 2020 einen stark verbesserten Rosetta 2 für den nahtlosen Intel-Apple Silicon-Übergang angekündigt. Für die Uneingeweihten ist Rosetta 2 die Übersetzungsschicht, mit der Sie Intel-basierte Apps auf Apple Silicon Macs verwenden können. Aber wie funktioniert diese leistungsstarke Übersetzungsschicht? Es gibt nur wenige Informationen zu diesem Thema, daher werden wir versuchen, Rosetta 2 zu zerlegen und zu verstehen, wie Rosetta 2 funktioniert.
Erstens ist Rosetta 2 eine Übersetzungsschicht, dh es übersetzt die Befehlssätze der Intel x86-Architektur in eine ARM-basierte Apple Silicon-Architektur. Wenn ich Befehlssatz sage, bedeutet dies, dass die Befehle (im Computer auch Maschinencode genannt) benötigt werden, um ein Programm einer Architektur auf einer anderen auszuführen. Schon seit x86- und ARM-Architekturen unterscheiden sich drastisch, Diese Übersetzung ist für das reibungslose Funktionieren von Intel-basierten Apps erforderlich.
Nun stellt sich die Frage, wie diese Übersetzung abläuft und wie Rosetta es schafft, schwere x86-Apps nahtlos auf ARM-Macs auszuführen. Sie können den Hauptgrund dem zuordnen AOT-Compiler (Ahead-of-Time) Apple hat Rosetta 2 bereits bereitgestellt. Zu Beginn von Rosetta im Jahr 2006 verwendete Apple nur den Just-in-Time-Compiler (JIT) für die statische binäre Übersetzung. Mit dem AOT-Compiler auf Rosetta 2 kann Apple Silicon den Code jetzt im laufenden Betrieb durch dynamische binäre Übersetzung übersetzen und kompilieren.
Dies bedeutet, dass Rosetta 2 jetzt je nach Szenario sowohl AOT- als auch JIT-Compiler verwendet. Noch bevor Sie eine App geöffnet haben, verwendet Rosetta 2 den AOT-Compiler während der App-Installation, um den Code zu übersetzen. Es macht die Intel-basierte App benimm dich wie eine Universal App nativ für das Apple Silicon gemacht. In Fällen, in denen die Parameter nicht bekannt sind oder die Werte zur Laufzeit generiert werden, verwendet Rosetta 2 JIT für die Echtzeitübersetzung.
Im Tandem kann Rosetta 2 x86-Befehlssätze übersetzen viel früher und schneller auf ARM-spezifischen Code umsteigen, wodurch der Leistungsunterschied zwischen nativen Universal-Apps und Intel-basierten Apps auf ein enges Maß reduziert wird.
Funktionsweise der Windows x86-Emulation?
Im Gegensatz zu Apple hat Microsoft ARM nicht vollständig angenommen, und diesbezüglich hat sich die Entwicklung nur langsam vollzogen. Das Unternehmen hat bisher nur wenige ARM-basierte Windows-Laptops lizenziert, darunter das Surface Pro X und einige immer verbundene PCs von HP, Lenovo usw. Der Hauptgrund für die langsame Einführung von ARM-basierten Windows-Laptops ist offenbar das mangelnde Unterstützung für x86-64-Bit-Apps (Intel-basierte 64-Bit-Apps) die den Großteil der modernen Windows-Apps abdecken.
Ab sofort unterstützen ARM-basierte Windows-Laptops nur native Apps, die auf dem ARM-Befehlssatz basieren, und 32-Bit-Intel-basierte Apps, die über die Windows x86-Emulation ausgeführt werden. Daraus können Sie schließen Die Windows x86-Emulation war ein Engpass für einen reibungslosen Übergang zu ARM. Kommen wir zur Frage, warum Microsoft unter Windows 10 nicht so etwas wie Rosetta 2 ausführen kann?
Um Ihre Frage zu beantworten, ist dies bereits der Fall. Im Gegensatz zur allgemeinen Wahrnehmung, Microsoft verwendet tatsächlich den gleichen Ansatz wie Rosetta- Übersetzen der Binärdateien in Maschinencode über die WOW64-Schicht. Laut einem Microsoft-Dokument von 2018, „Die WOW64-Schicht von Windows 10 ermöglicht die Ausführung von x86-Code auf der ARM64-Version von Windows 10. Die x86-Emulation kompiliert Blöcke von x86-Anweisungen zu ARM64-Anweisungen mit Optimierungen, um die Leistung zu verbessern. Ein Dienst speichert diese übersetzten Codeblöcke zwischen, um den Aufwand für die Befehlsübersetzung zu verringern und eine Optimierung zu ermöglichen, wenn der Code erneut ausgeführt wird. “
Außerdem gab Microsoft im September 2020 bekannt, dass im nächsten Jahr eine neue x86-Emulation für ARM-basierte Windows-Laptops verfügbar sein wird. Darüber hinaus ist es wird auch Unterstützung für Intel-basierte 64-Bit-Apps bringen auf ARM Silizium. Was den Compiler betrifft, gibt es zu diesem Thema nur sehr wenige Informationen. Es ist jedoch bekannt, dass Microsoft JIT für die Echtzeitübersetzung und -kompilierung verwendet. Wir werden abwarten müssen, was der neue x86-Emulator im Laden hat, wenn er nächstes Jahr startet.
Apple Rosetta 2 vs Windows x86 Emulation: Übersetzungsleistung
Während die neue Windows x86-Emulation nächstes Jahr erscheinen soll, gibt es einige andere Probleme, die die x86-Übersetzung unter Windows viel langsamer machen als Rosetta. Zunächst muss macOS nur zwei Architekturen unterstützen: ARM 64-Bit und x86 64-Bit. Apple hat die 32-Bit-App-Unterstützung im Jahr 2019 abgeschafft. Im Vergleich dazu unterstützt Windows on ARM die 32-Bit- und 64-Bit-Architektur von ARM. x86 32-Bit und x86 64-Bit, die nächstes Jahr kommen. Mit einem solchen Ressourcenaufwand ist es schwierig, die Übersetzung schneller zu machen.
Als nächstes muss Windows Abwärtskompatibilität beibehalten mit Tausenden von Programmen, Plugins, Tools, veralteten Bibliotheken und so weiter. Die strenge Kontrolle von Apple über die Plattform stellt sicher, dass Entwickler immer auf dem modernen Rahmen für die Entwicklung von Apps sind, was wiederum zu einem so großen Übergang beiträgt. Da Apple bereits in der Vergangenheit einen erfolgreichen Übergang von PowerPC zu Intel Macs (2006-2009) durchgeführt hat, ist es außerdem weitaus besser, so etwas zu ziehen.
Schließlich ist der Leistungsunterschied zwischen Qualcomms Snapdragon 8cx (auf Windows-basierten ARM-Laptops) und Apple M1 erheblich. Selbst der neueste Snapdragon 888 ist mindestens eine Generation hinter dem Apple A14 Bionic. Es gibt jedoch gute Nachrichten. Qualcomm hat die nächste Iteration des Desktop-Prozessors angekündigt - den Löwenmaul 8cx Gen 2 5G - im September, und es wird nächstes Jahr auf ARM-basierten Windows-Laptops verfügbar sein. Die Kombination eines neuen Chips und einer verbesserten Emulation kann für Microsoft hilfreich sein.
Apples Rosetta 2 gegen Windows x86-Emulation: Welches ist der Gewinner??
Es ist klar, dass Rosetta 2 ziemlich leistungsfähig ist und Apple fantastische Arbeit geleistet hat, um App-Unterstützung für Intel-basierte Programme bereitzustellen. Derzeit sieht Windows unter ARM vielleicht nicht so vielversprechend aus, aber angesichts der Ankündigung der neuen Emulationsmethode durch Microsoft weckt dies sicherlich die Hoffnung für Windows-Benutzer. Es bleibt abzuwarten, ob Microsoft Apple im nächsten Quartal verstärkt. Jedenfalls ist das alles von uns. Wenn Sie Fragen haben, kommentieren Sie unten und lassen Sie es uns wissen.