Apple a creat istoria când a lansat noile MacBook-uri cu procesorul său Apple M1 bazat pe ARM, înlocuind procesoarele Intel după mai bine de un deceniu. Cu o astfel de tranziție uriașă, Apple a avut o sarcină gigantică de a menține compatibilitatea aplicațiilor pe M1. Cu toate acestea, se pare că Apple a scos-o prin stratul său puternic de traducere - Rosetta 2. Am văzut deja cum Windows pe ARM nu a reușit să atragă utilizatorii din cauza problemelor de compatibilitate cu aplicațiile x86. Deci, ce face Rosetta 2 atât de puternică și de ce emularea Windows x86 nu pare să aibă această promisiune? Ei bine, pentru a găsi răspunsul, să mergem mai departe și să comparăm emulația Rosetta 2 vs Windows x86 de la Apple una lângă alta.
Emulatia Apple Rosetta 2 vs Windows x86: tot ce trebuie să știți
Aici am menționat toate secțiunile pe care le-am acoperit, astfel încât să puteți găsi cu ușurință toate informațiile. Puteți face clic pe link pentru a vă deplasa fără probleme între diferite secțiuni. Cuprins + -
Cum funcționează Rosetta 2 de la Apple?
După introducerea Rosetta în 2006 în timpul tranziției PowerPC-Intel, Apple a anunțat o Rosetta 2 mult îmbunătățită în 2020 pentru tranziția fără sudură Intel-Apple Silicon. Pentru cei neinițiați, Rosetta 2 este strat de traducere care vă permite să utilizați aplicații bazate pe Intel pe Apple Silicon Macs. Dar cum funcționează acest puternic strat de traducere? Există puține informații despre acest subiect, așa că vom încerca să disecăm Rosetta 2 și să înțelegem cum funcționează Rosetta 2.
În primul rând, Rosetta 2 este un strat de traducere, ceea ce înseamnă că traduce seturile de instrucțiuni ale arhitecturii Intel x86 în arhitectura Apple Silicon bazată pe ARM. Când spun set de instrucțiuni, înseamnă comenzile (numite și codul mașinii în calcul) necesare pentru a executa un program de o arhitectură pe alta. De cand Arhitecturile x86 și ARM sunt drastic diferite, această traducere este necesară pentru buna funcționare a aplicațiilor bazate pe Intel.
Acum apare întrebarea, cum se întâmplă această traducere și cum reușește Rosetta să ruleze fără probleme aplicații x86 grele pe Mac-urile ARM? Puteți atribui principalul motiv pentru Compilator Ahead-of-Time (AOT) pe care Apple l-a implementat pe Rosetta 2. Anterior cu Rosetta în 2006, Apple folosea doar compilatorul Just-in-time (JIT) pentru traducerea binară statică. Acum, cu compilatorul AOT de pe Rosetta 2, Apple Silicon este capabil să traducă și să compileze codul din mers, prin traducere binară dinamică.
Ceea ce înseamnă este că Rosetta 2 folosește acum atât compilatorul AOT, cât și JIT, în funcție de scenariu. Chiar înainte de a deschide o aplicație, Rosetta 2 folosește compilatorul AOT în timpul instalării aplicației pentru a traduce codul. Face aplicația bazată pe Intel comportă-te ca o aplicație universală realizat nativ pentru Apple Silicon. În cazurile în care parametrii nu sunt cunoscuți sau valorile vor fi generate în timpul rulării, Rosetta 2 folosește JIT pentru traducerea în timp real.
În tandem, Rosetta 2 este capabilă traduce seturi de instrucțiuni x86 la cod specific ARM mult mai înainte și într-un mod mai rapid, aducând diferența de performanță între aplicațiile native universale și aplicațiile bazate pe Intel la o marjă restrânsă.
Cum funcționează Windows x86 Emulation?
Spre deosebire de Apple, Microsoft nu a îmbrățișat pe deplin ARM și a existat o dezvoltare lentă pe acest front. Compania a licențiat până acum doar câteva laptop-uri Windows bazate pe ARM, inclusiv Surface Pro X și unele PC-uri mereu conectate de HP, Lenovo, etc. Principalul motiv din spatele adoptării lente a laptopurilor Windows bazate pe ARM este aparent lipsa suportului pentru aplicațiile x86-64 bit (bazate pe Intel pe 64 de biți) care acoperă cea mai mare parte a aplicațiilor Windows moderne.
De acum, laptopurile Windows bazate pe ARM acceptă doar aplicațiile native construite pe setul de instrucțiuni ARM și aplicațiile bazate pe Intel pe 32 de biți, care rulează prin emulare Windows x86. Puteți concluziona că Emularea Windows x86 a fost un blocaj pentru trecerea lină la ARM. Venind la întrebare, de ce nu poate Microsoft să scoată ceva de genul Rosetta 2 pe Windows 10?
Ei bine, pentru a răspunde la întrebarea dvs., da deja. Contrar percepției populare, Microsoft folosește de fapt aceeași abordare ca Rosetta- traducerea binarelor în codul mașinii prin stratul său WOW64. Conform unui document Microsoft din 2018, „Stratul WOW64 din Windows 10 permite codului x86 să ruleze pe versiunea ARM64 a Windows 10. Emularea x86 funcționează prin compilarea blocurilor de instrucțiuni x86 în instrucțiunile ARM64 cu optimizări pentru a îmbunătăți performanța. Un serviciu memorează în cache aceste blocuri de cod traduse pentru a reduce cheltuielile de traducere a instrucțiunilor și pentru a permite optimizarea atunci când codul rulează din nou. ”
În afară de aceasta, în septembrie 2020, Microsoft a anunțat că o nouă emulație x86 vine pe laptopurile Windows bazate pe ARM anul viitor. În plus, ea va aduce, de asemenea, suport pentru aplicațiile pe 64 de biți bazate pe Intel pe siliciu ARM. În ceea ce privește compilatorul, există foarte puține informații despre acest subiect. Cu toate acestea, se știe că Microsoft a folosit JIT pentru traducere și compilare în timp real. Va trebui să așteptăm și să vedem ce are noul emulator x86 în magazin când va fi lansat anul viitor.
Emulatia Apple Rosetta 2 vs Windows x86: Performanță de traducere
În timp ce noua emulație Windows x86 urmează să sosească anul viitor, există alte probleme care fac ca traducerea x86 pe Windows să fie mult mai lentă decât Rosetta. În primul rând, macOS trebuie să accepte doar două arhitecturi: ARM pe 64 de biți și x86 pe 64 de biți. Apple a eliminat suportul pentru aplicații pe 32 de biți în 2019. În comparație, Windows pe ARM acceptă arhitectura ARM pe 32 și 64 de biți; x86 pe 32 de biți și x86 pe 64 de biți care vor veni anul viitor. Cu o astfel de resursă, este dificil să faci traducerea mai rapidă.
Apoi, Windows trebuie mențineți compatibilitatea înapoi cu mii de programe, pluginuri, instrumente, biblioteci învechite și ce nu. Întrucât controlul strict al platformei de către Apple asigură că dezvoltatorii se află întotdeauna pe cadrul modern pentru dezvoltarea de aplicații care, la rândul lor, ajută la realizarea unei tranziții atât de uriașe. În plus, deoarece Apple a făcut deja o tranziție de succes de la PowerPC la Intel Mac-uri (2006-2009) în trecut, are o experiență mult mai bună pentru a trage așa ceva.
În cele din urmă, diferența de performanță între Snapdragon 8cx de la Qualcomm (găsită pe laptopurile ARM bazate pe Windows) și Apple M1 este semnificativă. Chiar și cel mai recent Snapdragon 888 este cel puțin o generație în spatele Apple A14 Bionic. Există însă vești bune. Qualcomm a anunțat următoarea iterație a procesorului desktop - Snapdragon 8cx Gen 2 5G - în septembrie și va fi disponibil pe laptopurile Windows bazate pe ARM anul viitor. Combinația dintre un nou cip și o emulare îmbunătățită poate face trucul pentru Microsoft.
Emulatia Apple Rosetta 2 vs Windows x86: Care este câștigătorul?
Este clar că Rosetta 2 este destul de puternic și Apple a făcut o treabă fantastică oferind suport pentru aplicații pentru programele bazate pe Intel. În prezent, Windows pe ARM s-ar putea să nu pară atât de promițător, dar având în vedere anunțul Microsoft cu privire la noua metodă de emulare, sigur creează speranță pentru utilizatorii de Windows. Va rămâne de văzut dacă Microsoft va lansa Apple în trimestrul următor. Oricum, asta este totul de la noi. Dacă aveți întrebări, comentați mai jos și anunțați-ne.