Apple schrieb Geschichte, als es die neuen MacBooks mit seinem hauseigenen ARM-basierten Apple M1-Prozessor auf den Markt brachte und Intel-Prozessoren nach mehr als einem Jahrzehnt ersetzte. Bei einem so großen Übergang lag für Apple eine gigantische Aufgabe darin, die App-Kompatibilität auf M1 aufrechtzuerhalten. Es scheint jedoch, dass Apple es durch seine leistungsstarke Übersetzungsschicht – Rosetta 2 – geschafft hat. Wir haben bereits gesehen, wie Windows auf ARM Benutzer aufgrund von Kompatibilitätsproblemen mit x86-Apps nicht überzeugen konnte. Was also macht Rosetta 2 so leistungsfähig und warum scheint die Windows x86-Emulation dieses Versprechen nicht zu haben? Nun, um die Antwort zu finden, lassen Sie uns fortfahren und Apples Rosetta 2 mit der Windows x86-Emulation Seite an Seite vergleichen.
Apples Rosetta 2 vs. Windows x86-Emulation: Alles, was Sie wissen müssen
Hier haben wir alle Abschnitte erwähnt, die wir abgedeckt haben, damit Sie alle Informationen leicht finden können. Sie können auf den Link klicken, um nahtlos zwischen verschiedenen Abschnitten zu wechseln.
Wie funktioniert Rosetta 2 von Apple?
Nach der Einführung von Rosetta im Jahr 2006 während des PowerPC-Intel-Übergangs hat Apple für 2020 ein stark verbessertes Rosetta 2 für einen nahtlosen Übergang von Intel zu Apple Silicon angekündigt. Für Uneingeweihte 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 analysieren und zu verstehen, wie Rosetta 2 funktioniert.
Zunächst einmal ist Rosetta 2 eine Übersetzungsschicht, was bedeutet, dass es die Befehlssätze der Intel x86-Architektur in die ARM-basierte Apple Silicon-Architektur übersetzt. Wenn ich Befehlssatz sage, meine ich die Befehle (in der Computertechnik auch Maschinencode genannt), die erforderlich sind, um ein Programm einer Architektur auf einer anderen auszuführen. Seit x86- und ARM-Architekturen unterscheiden sich drastischdiese Übersetzung ist für das reibungslose Funktionieren von Intel-basierten Apps erforderlich.
Nun stellt sich die Frage, wie kommt diese Übersetzung zustande und wie schafft es Rosetta, schwere x86-Apps nahtlos auf ARM-Macs auszuführen? Sie können den Hauptgrund dem zuschreiben Ahead-of-Time (AOT)-Compiler die Apple auf Rosetta 2 bereitgestellt hat. Früher mit Rosetta im Jahr 2006 verwendete Apple nur den Just-in-Time (JIT)-Compiler für die statische Binärübersetzung. Mit dem AOT-Compiler auf Rosetta 2 ist Apple Silicon nun in der Lage, den Code im Handumdrehen durch dynamische Binärübersetzung zu übersetzen und zu kompilieren.
Das bedeutet, dass Rosetta 2 jetzt je nach Szenario sowohl den AOT- als auch den JIT-Compiler verwendet. Noch bevor Sie eine App geöffnet haben, verwendet Rosetta 2 während der App-Installation den AOT-Compiler, um den Code zu übersetzen. Es macht die Intel-basierte App sich wie eine universelle App verhalten 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 ist Rosetta 2 dazu in der Lage x86-Befehlssätze übersetzen zu ARM-spezifischem Code viel früher und schneller, wodurch der Leistungsunterschied zwischen universellen nativen Apps und Intel-basierten Apps auf einen schmalen Rand gebracht wird.
Wie funktioniert die Windows x86-Emulation?
Im Gegensatz zu Apple hat Microsoft ARM nicht vollständig angenommen, und es gab eine langsame Entwicklung an dieser Front. Das Unternehmen hat bisher nur wenige ARM-basierte Windows-Laptops lizenziert, darunter das Surface Pro X und einige Always-Connected-PCs von HP, Lenovo usw. Der Hauptgrund für die langsame Einführung von ARM-basierten Windows-Laptops ist anscheinend die fehlende Unterstützung für x86-64-Bit-Apps (Intel-basierte 64-Bit). die den Großteil moderner 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. Darauf können Sie schließen Die Windows x86-Emulation war ein Engpass für einen reibungslosen Übergang zu ARM. Kommen wir zu der Frage, warum kann Microsoft so etwas wie Rosetta 2 nicht unter Windows 10 durchziehen?
Nun, um Ihre Frage zu beantworten, das tut es bereits. Entgegen der landläufigen Meinung, Microsoft verwendet tatsächlich den gleichen Ansatz wie Rosetta— Übersetzen der Binärdateien in Maschinencode durch seine WOW64-Schicht. Laut einem Microsoft-Dokument aus dem Jahr 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 funktioniert, indem Blöcke von x86-Anweisungen in ARM64-Anweisungen mit Optimierungen zur Leistungsverbesserung kompiliert werden. Ein Dienst speichert diese übersetzten Codeblöcke zwischen, um den Overhead der Anweisungsübersetzung zu reduzieren und eine Optimierung zu ermöglichen, wenn der Code erneut ausgeführt wird.“
Abgesehen davon gab Microsoft im September 2020 bekannt, dass a neue x86-Emulation kommt zu ARM-basierten Windows-Laptops im nächsten Jahr. Außerdem ist es wird auch Unterstützung für Intel-basierte 64-Bit-Apps bringen auf ARM-Silizium. Was den Compiler betrifft, so gibt es sehr wenige Informationen zu diesem Thema. Das ist jedoch bekannt Microsoft verwendet JIT für Echtzeitübersetzung und -kompilierung. Wir müssen abwarten und sehen, was der neue x86-Emulator im Laden hat, wenn er nächstes Jahr auf den Markt kommt.
Apples 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 einmal muss macOS nur zwei Architekturen unterstützen: ARM 64-Bit und x86 64-Bit. Apple hat 2019 die 32-Bit-App-Unterstützung abgeschafft. Im Vergleich dazu unterstützt Windows auf ARM die ARM-32-Bit- und 64-Bit-Architektur; x86 32-Bit und x86 64-Bit, die nächstes Jahr kommen. Mit einem solchen Ressourcenaufwand ist es schwierig, die Übersetzung zu beschleunigen.
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 Framework für die Entwicklung von Apps arbeiten, was wiederum dazu beiträgt, einen so großen Übergang zu vollziehen. Abgesehen davon, da Apple in der Vergangenheit bereits einen erfolgreichen Übergang von PowerPC zu Intel-Macs (2006-2009) durchgeführt hat, hat es eine weitaus bessere Erfahrung, so etwas zu ziehen.
Schließlich ist der Leistungsunterschied zwischen Qualcomms Snapdragon 8cx (auf Windows-basierten ARM-Laptops zu finden) und Apple M1 erheblich. Selbst der neueste Snapdragon 888 ist mindestens eine Generation hinter dem Apple A14 Bionic zurück. Es gibt aber gute Neuigkeiten. 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 aus einem neuen Chip und einer verbesserten Emulation könnte für Microsoft ausreichen.
Apples Rosetta 2 vs. Windows x86-Emulation: Wer 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 on ARM vielleicht nicht so vielversprechend aus, aber angesichts der Ankündigung von Microsoft zur neuen Emulationsmethode weckt es sicherlich Hoffnung für Windows-Benutzer. Es bleibt abzuwarten, ob Microsoft Apple im nächsten Quartal übertrumpfen wird. Wie auch immer, das ist alles von uns. Wenn Sie Fragen haben, kommentieren Sie unten und lassen Sie es uns wissen.