Firma Apple stworzyła historię, wprowadzając nowe MacBooki z własnym procesorem Apple M1 opartym na architekturze ARM, zastępując procesory Intela po ponad dziesięciu latach. Przy tak ogromnym przejściu Apple miał przed sobą gigantyczne zadanie utrzymania zgodności aplikacji z M1. Wygląda jednak na to, że Apple poradził sobie z tym dzięki swojej potężnej warstwie tłumaczeniowej - Rosetta 2. Widzieliśmy już, jak Windows na ARM nie przyciągał użytkowników z powodu problemów ze zgodnością z aplikacjami x86. Więc co sprawia, że Rosetta 2 jest tak potężna i dlaczego emulacja Windows x86 nie wydaje się obiecująca? Cóż, aby znaleźć odpowiedź, przejdźmy dalej i porównajmy Apple Rosetta 2 z emulacją Windows x86 obok siebie.
Emulacja Apple Rosetta 2 vs Windows x86: wszystko, co musisz wiedzieć
Tutaj wymieniliśmy wszystkie sekcje, które omówiliśmy, abyś mógł łatwo znaleźć wszystkie informacje. Możesz kliknąć łącze, aby płynnie przechodzić między różnymi sekcjami. Spis treści + -
Jak działa Rosetta 2 firmy Apple?
Po wprowadzeniu Rosetty w 2006 r., Podczas przejścia na PowerPC-Intel, Apple ogłosił znacznie ulepszoną Rosettę 2 w 2020 r., Aby zapewnić płynne przejście Intel-Apple Silicon. Dla niewtajemniczonych Rosetta 2 to warstwa tłumaczenia, która umożliwia korzystanie z aplikacji opartych na procesorach Intel na komputerach Apple Silicon Mac. Ale jak działa ta potężna warstwa tłumaczeń? Jest niewiele informacji na ten temat, dlatego spróbujemy przeanalizować Rosetta 2 i zrozumieć, jak działa Rosetta 2.
Przede wszystkim Rosetta 2 jest warstwą tłumaczeniową, co oznacza, że tłumaczy zestawy instrukcji architektury Intel x86 na architekturę Apple Silicon opartą na ARM. Kiedy mówię zestaw instrukcji, oznacza to polecenia (zwane również kodem maszynowym w obliczeniach) potrzebne do wykonania programu jednej architektury na drugiej. Od Architektury x86 i ARM są drastycznie różne, to tłumaczenie jest wymagane do sprawnego działania aplikacji opartych na procesorach Intel.
Teraz pojawia się pytanie, jak doszło do tego tłumaczenia i jak Rosetta radzi sobie z bezproblemowym uruchamianiem ciężkich aplikacji x86 na komputerach ARM Mac? Możesz przypisać główną przyczynę do Kompilator wyprzedzający (AOT) które Apple wdrożył na Rosetcie 2. Wcześniej w Rosetta w 2006 roku Apple używał tylko kompilatora Just-in-time (JIT) do statycznego tłumaczenia binarnego. Teraz, dzięki kompilatorowi AOT na Rosetta 2, Apple Silicon jest w stanie przetłumaczyć i skompilować kod w locie dzięki dynamicznemu tłumaczeniu binarnemu.
Oznacza to, że Rosetta 2 używa teraz zarówno kompilatora AOT, jak i JIT, w zależności od scenariusza. Jeszcze przed otwarciem aplikacji Rosetta 2 używa kompilatora AOT podczas instalacji aplikacji do przetłumaczenia kodu. To sprawia, że aplikacja oparta na Intelu zachowywać się jak aplikacja uniwersalna wykonane natywnie dla Apple Silicon. W przypadkach, gdy parametry nie są znane lub wartości zostaną wygenerowane w czasie wykonywania, Rosetta 2 używa JIT do tłumaczenia w czasie rzeczywistym.
W tandemie Rosetta 2 jest w stanie tłumaczyć zestawy instrukcji x86 do kodu specyficznego dla ARM znacznie wcześniej iw szybszy sposób, zmniejszając różnicę wydajności między uniwersalnymi aplikacjami natywnymi a aplikacjami opartymi na Intelu.
Jak działa emulacja Windows x86?
W przeciwieństwie do Apple, Microsoft nie w pełni przyjął ARM i na tym froncie nastąpił powolny rozwój. Firma do tej pory licencjonowała tylko kilka laptopów opartych na architekturze ARM z systemem Windows, w tym Surface Pro X i niektóre stale połączone komputery firm HP, Lenovo itp. Głównym powodem powolnego wdrażania laptopów opartych na architekturze ARM z systemem Windows jest najwyraźniej brak wsparcia dla aplikacji x86-64 bit (64-bitowych opartych na Intelu) które obejmują większość nowoczesnych aplikacji systemu Windows.
Obecnie laptopy z systemem Windows z procesorem ARM obsługują tylko natywne aplikacje oparte na zestawie instrukcji ARM i 32-bitowe aplikacje oparte na procesorach Intel, które działają w systemie Windows x86 Emulation. Możesz to wywnioskować Emulacja Windows x86 była wąskim gardłem dla płynnego przejścia na ARM. Wracając do pytania, dlaczego Microsoft nie może wykonać czegoś takiego jak Rosetta 2 na Windows 10?
Cóż, odpowiadając na twoje pytanie, już tak. Wbrew powszechnemu przekonaniu, Microsoft faktycznie stosuje to samo podejście co Rosetta- tłumaczenie plików binarnych na kod maszynowy poprzez warstwę WOW64. Zgodnie z dokumentem Microsoft z 2018 r, „Warstwa WOW64 systemu Windows 10 umożliwia uruchamianie kodu x86 w wersji ARM64 systemu Windows 10. Emulacja x86 działa poprzez kompilowanie bloków instrukcji x86 do instrukcji ARM64 z optymalizacjami poprawiającymi wydajność. Usługa buforuje te przetłumaczone bloki kodu, aby zmniejszyć obciążenie związane z tłumaczeniem instrukcji i umożliwić optymalizację po ponownym uruchomieniu kodu ”.
Poza tym we wrześniu 2020 roku Microsoft ogłosił, że nowa emulacja x86 pojawi się w laptopach z systemem Windows z procesorem ARM w przyszłym roku. Ponadto to zapewni również obsługę 64-bitowych aplikacji opartych na procesorach Intel na krzemie ARM. Jeśli chodzi o kompilator, informacji na ten temat jest bardzo mało. Wiadomo jednak, że Microsoft używa JIT do tłumaczenia i kompilacji w czasie rzeczywistym. Będziemy musieli poczekać i zobaczyć, co nowy emulator x86 ma w sklepie, gdy zostanie uruchomiony w przyszłym roku.
Emulacja Apple Rosetta 2 vs Windows x86: wydajność tłumaczenia
Chociaż nowa emulacja Windows x86 ma pojawić się w przyszłym roku, istnieją inne problemy, które powodują, że tłumaczenie x86 w systemie Windows jest znacznie wolniejsze niż Rosetta. Po pierwsze, macOS musi obsługiwać tylko dwie architektury: ARM 64-bitowy i x86 64-bitowy. Apple zrezygnował z obsługi aplikacji 32-bitowych w 2019 roku. Dla porównania Windows na ARM obsługuje architekturę ARM 32-bitową i 64-bitową; x86 32-bit i x86 64-bit, które pojawią się w przyszłym roku. Przy takim obciążeniu zasobów trudno jest przyspieszyć tłumaczenie.
Następnie Windows musi zachować zgodność z poprzednimi wersjami z tysiącami programów, wtyczek, narzędzi, przestarzałych bibliotek i tak dalej. Mając na uwadze ścisłą kontrolę Apple nad platformą, programiści zawsze korzystają z nowoczesnych ram do tworzenia aplikacji, co z kolei pomaga w dokonaniu tak ogromnej zmiany. Poza tym, ponieważ Apple dokonał już w przeszłości udanego przejścia z PowerPC na Intel Macs (2006-2009), ma o wiele lepsze doświadczenie, aby wyciągnąć coś takiego.
Wreszcie różnica w wydajności między Snapdragonem 8cx firmy Qualcomm (znalezionym w laptopach ARM z systemem Windows) a Apple M1 jest znacząca. Nawet najnowszy Snapdragon 888 jest co najmniej o pokolenie za Apple A14 Bionic. Jest jednak dobra wiadomość. Qualcomm ogłosił kolejną iterację procesora do komputerów stacjonarnych - Snapdragon 8cx Gen 2 5G - we wrześniu, aw przyszłym roku będzie dostępny na laptopach z systemem Windows z procesorami ARM. Połączenie nowego chipa i ulepszonej emulacji może załatwić sprawę Microsoft.
Emulacja Apple Rosetta 2 vs Windows x86: która jest zwycięzcą?
Oczywiste jest, że Rosetta 2 jest dość potężna, a Apple wykonał fantastyczną robotę, zapewniając obsługę aplikacji dla programów opartych na Intelu. Obecnie Windows na ARM może nie wyglądać tak obiecująco, ale biorąc pod uwagę zapowiedź Microsoftu dotyczącą nowej metody emulacji, z pewnością budzi to nadzieję dla użytkowników Windowsa. Okaże się, czy Microsoft podbije Apple w następnym kwartale. W każdym razie to wszystko od nas. Jeśli masz jakieś pytania, skomentuj poniżej i daj nam znać.