Apple skapade historia när de lanserade de nya MacBooks med sin egen ARM-baserade Apple M1-processor som ersatte Intel-processorer efter mer än ett decennium. Med en sådan enorm övergång fanns det en gigantisk uppgift på Apples hand att upprätthålla appkompatibilitet på M1. Det verkar dock som om Apple har dragit det genom sitt kraftfulla översättningsskikt - Rosetta 2. Vi har redan sett hur Windows på ARM misslyckades med att locka användare på grund av kompatibilitetsproblem med x86-appar. Så vad gör Rosetta 2 så kraftfull och varför Windows x86-emulering inte verkar ha det löftet? Tja, för att hitta svaret, låt oss fortsätta och jämföra Apples Rosetta 2 vs Windows x86 Emulation sida vid sida.
Apples Rosetta 2 vs Windows x86-emulering: Allt du behöver veta
Här har vi nämnt alla avsnitt vi har täckt så att du enkelt kan hitta all information. Du kan klicka på länken för att sömlöst flytta mellan olika sektioner. Innehållsförteckning + -
Hur Apples Rosetta 2 fungerar?
Efter introduktionen av Rosetta 2006 under PowerPC-Intel-övergången, har Apple meddelat en mycket förbättrad Rosetta 2 2020 för sömlös Intel-Apple Silicon-övergång. För oinvigda är Rosetta 2 översättningsskikt som låter dig använda Intel-baserade appar på Apple Silicon Mac-datorer. Men hur fungerar det här kraftfulla översättningsskiktet? Det finns lite information om detta ämne så vi kommer att försöka dissekera Rosetta 2 och förstå hur Rosetta 2 fungerar.
Först och främst är Rosetta 2 ett översättningsskikt vilket innebär att det översätter instruktionsuppsättningarna för Intel x86-arkitektur till ARM-baserad Apple Silicon-arkitektur. När jag säger instruktionsuppsättning betyder det att kommandona (även kallad maskinkod vid beräkning) som behövs för att utföra ett program med en arkitektur på en annan. Eftersom x86 och ARM-arkitekturer skiljer sig drastiskt, denna översättning krävs för att Intel-baserade appar ska fungera väl.
Nu kommer frågan, hur händer den här översättningen och hur lyckas Rosetta köra tunga x86-appar på ARM Mac-datorer sömlöst? Du kan tillskriva huvudorsaken till AOT-of-time (AOT) kompilator som Apple har distribuerat på Rosetta 2. Tidigare med Rosetta 2006 använde Apple bara just-in-time (JIT) kompilatorn för statisk binär översättning. Nu med AOT-kompilatorn på Rosetta 2 kan Apple Silicon översätta och sammanställa koden i farten genom dynamisk binär översättning.
Vad det betyder är att Rosetta 2 nu använder både AOT- och JIT-kompilator, beroende på scenariot. Redan innan du har öppnat en app använder Rosetta 2 AOT-kompilatorn under appinstallationen för att översätta koden. Det gör den Intel-baserade appen beter sig som en Universal-app tillverkat för Apple Silicon. I de fall parametrarna inte är kända eller värdena genereras under körning använder Rosetta 2 JIT för översättning i realtid.
Tillsammans kan Rosetta 2 göra det översätt x86 instruktionsuppsättningar till ARM-specifik kod mycket innan och på ett snabbare sätt, vilket ger prestandaskillnaden mellan Universal native-appar och Intel-baserade appar till en smal marginal.
Hur Windows x86-emulering fungerar?
Till skillnad från Apple har Microsoft inte helt omfamnat ARM och det har skett en långsam utveckling på denna front. Företaget har hittills endast licensierat några få ARM-baserade Windows-bärbara datorer inklusive Surface Pro X och några alltid anslutna datorer av HP, Lenovo, etc. Den främsta anledningen till den långsamma antagandet av ARM-baserade Windows-bärbara datorer är tydligen brist på stöd för x86-64 bitars (Intel-baserade 64-bitars) appar som täcker huvuddelen av moderna Windows-appar.
Från och med nu stöder ARM-baserade Windows-bärbara datorer endast inbyggda appar som bygger på ARM-instruktionsuppsättningen och 32-bitars Intel-baserade appar som körs genom Windows x86-emulering. Du kan dra slutsatsen att Windows x86-emulering har varit en flaskhals för smidig övergång till ARM. Kommer till frågan, varför kan inte Microsoft dra ut något som Rosetta 2 på Windows 10?
För att svara på din fråga, gör det redan. I motsats till populär uppfattning, Microsoft använder faktiskt samma tillvägagångssätt som Rosetta- översätta binärfiler till maskinkod via WOW64-lagret. Enligt ett Microsoft-dokument från 2018, ”WOW64-lagret i Windows 10 tillåter att x86-kod körs på ARM64-versionen av Windows 10. x86-emulering fungerar genom att sammanställa block med x86-instruktioner till ARM64-instruktioner med optimeringar för att förbättra prestanda. En tjänst cachar dessa översatta kodblock för att minska kostnaderna för översättningen av instruktioner och möjliggöra optimering när koden körs igen. ”
Bortsett från det meddelade Microsoft i september 2020 att en ny x86-emulering kommer till ARM-baserade Windows-bärbara datorer nästa år. Dessutom är det kommer också att ge stöd för Intel-baserade 64-bitarsappar på ARM-kisel. När det gäller kompilatorn finns det mycket lite information om detta ämne. Det är dock känt att Microsoft har använt JIT för översättning och sammanställning i realtid. Vi måste vänta och se vad den nya x86-emulatorn har i butiken när den lanseras nästa år.
Apples Rosetta 2 vs Windows x86 Emulation: Översättningsprestanda
Medan den nya Windows x86-emuleringen kommer att komma nästa år finns det några andra problem som gör x86-översättning på Windows mycket långsammare än Rosetta. För det första måste macOS endast stödja två arkitekturer: ARM 64-bitars och x86 64-bitars. Apple avskaffade 32-bitars appstöd 2019. I jämförelse stöder Windows på ARM ARM 32-bitars och 64-bitars arkitektur; x86 32-bitars och x86 64-bitars som kommer nästa år. Med en sådan resurskostnad är det svårt att göra översättningen snabbare.
Därefter måste Windows behålla bakåtkompatibilitet med tusentals program, plugins, verktyg, föråldrade bibliotek och vad som helst. Apples snäva kontroll över plattformen säkerställer att utvecklare alltid är på den moderna ramen för att utveckla appar som i sin tur hjälper till att göra en så enorm övergång. Eftersom Apple redan tidigare har gjort en framgångsrik övergång från PowerPC till Intel Mac (2006-2009) har den en mycket bättre upplevelse att dra något liknande.
Slutligen är prestandaskillnaden mellan Qualcomms Snapdragon 8cx (som finns på Windows-baserade ARM-bärbara datorer) och Apple M1 betydande. Även den senaste Snapdragon 888 är åtminstone en generation bakom Apple A14 Bionic. Det finns dock goda nyheter. Qualcomm har meddelat nästa iteration av stationär processor - Snapdragon 8cx Gen 2 5G - i september, och den kommer att finnas tillgänglig på ARM-baserade Windows-bärbara datorer nästa år. Kombinationen av ett nytt chip och förbättrad emulering kan göra tricket för Microsoft.
Apples Rosetta 2 vs Windows x86 Emulation: Vilken är vinnaren?
Det är uppenbart att Rosetta 2 är ganska kraftfull och Apple har gjort ett fantastiskt jobb för att ge appstöd för Intel-baserade program. För närvarande kan Windows på ARM inte se så lovande ut, men med tanke på Microsofts tillkännagivande av den nya emuleringsmetoden väcker det säkert hopp för Windows-användare. Det kommer att ses om Microsoft förstärker Apple under nästa kvartal. Hur som helst, det är allt från oss. Om du har några frågor kan du kommentera nedan och meddela oss.