Rosetta (software)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 24 mai 2022; verificările necesită 2 modificări .

Rosetta este un traducător  binar dinamic dezvoltat de Apple Inc pentru sistemele sale de operare ( macOS ) pentru compatibilitatea aplicațiilor între diferitele arhitecturi de seturi de instrucțiuni . Acest lucru oferă dezvoltatorilor și consumatorilor o perioadă de tranziție în timpul căreia își pot actualiza software- ul aplicației pentru a rula pe hardware mai nou, „migrând” la o arhitectură diferită. Numele „Rosetta” este o referire la Piatra Rosetta , un artefact care a permis traducerea hieroglifelor egiptene. [unu]

Prima versiune de Rosetta, introdusă în 2006 ca o componentă a Mac OS X Tiger , permite aplicațiilor PowerPC să ruleze pe Mac-uri bazate pe Intel . A doua versiune, introdusă în 2020 ca o componentă a macOS Big Sur , face parte din tranziția Mac de la procesoarele Intel la procesoarele Apple siliciu bazate pe ARM . [2]

Dezvoltare

Apple a folosit patru serii de arhitecturi de procesoare în linia sa de computere Macintosh , și anume seria Motorola 68000 , seria PowerPC , seria Intel Core și propria sa serie de procesoare de tip ARM . Fiecare tranziție a făcut ca software-ul construit pentru arhitectura anterioară să fie incompatibil cu noua, creând o nevoie de software care să permită noii platforme să o emuleze pe cea anterioară.

Când compania și-a introdus primele sisteme PowerPC, Apple a inclus software în versiunea de SO 7.1.2 și mai târziu pentru a emula sistemul din seria 68000. Acest emulator profită de caracteristicile integrate în procesoarele PowerPC și accesează cele mai joase niveluri ale sistemului de operare care rulează pe acesta. același nivel ca nanokernel -ul Mac OS și strâns legat de acesta. Aceasta înseamnă că nanokernel-ul este capabil să capteze întreruperile PowerPC , să le convertească în întreruperi de 68k (apoi trecând la modul mixt, dacă este necesar) și apoi să execute cod de 68k pentru a gestiona întreruperi. Acest lucru vă permite să intercalați linii de 68k și cod PowerPC în același binar gras .

Rosetta (trece la Intel)

Apple a lansat prima versiune de Rosetta în 2006, când a început să-și schimbe linia Macintosh de la PowerPC la un procesor Intel. A fost inclus inițial în Mac OS X v10. 4.4 „Tiger”, versiunea care a fost lansată cu primele Mac-uri bazate pe Intel și permite multor aplicații PowerPC să ruleze nemodificate pe Mac-uri bazate pe Intel. Rosetta se bazează pe tehnologia QuickTransit [3] nu are interfață cu utilizatorul și rulează după cum este necesar, fără a anunța Utilizatorul, ceea ce determină Apple să îl descrie drept „cel mai uimitor software pe care îl veți vedea vreodată”. Rosetta nu este instalată implicit în Mac OS X v10. 6 " Snow Leopard ", dar disponibil ca opțiune instalabilă. Rosetta nu este inclusă sau acceptată pe Mac OS X v10. 7 „Lion” sau mai recent, care, prin urmare, nu poate rula aplicații PowerPC. [patru]

Beneficii

Datorită diferențelor arhitecturale mari dintre procesoarele Intel și PowerPC, Rosetta rulează la un nivel mai înalt decât emulatorul 68000 ca un program la nivel de utilizator care poate doar intercepta și emula codul la nivel de utilizator. Traduce instrucțiunile G3, G4 și AltiVec , dar nu și instrucțiunile G5. Deși majoritatea programelor comerciale pentru computerele bazate pe PowerPC erau compatibile cu aceste cerințe (sistemele G4 erau încă utilizate pe scară largă la acea vreme), orice aplicații care se bazau pe instrucțiuni specifice G5 trebuiau modificate de dezvoltatorii lor pentru a rula pe computere suportate de Rosetta pe baza Intel. Apple a spus că aplicațiile cu interacțiune intensă a utilizatorului, dar cu nevoi de calcul reduse (cum ar fi procesoarele de text ) sunt cele mai potrivite pentru utilizare cu Rosetta, în timp ce aplicațiile cu nevoi de calcul mari (cum ar fi jocuri, AutoCAD sau Photoshop) nu sunt.

Restricții de suport

De asemenea, Rosetta nu acceptă următoarele:

Mediul desktop și, prin urmare, orice aplicație construită pentru Mac OS 9 sau o versiune anterioară Cod care inserează setări în panoul Preferințe sistem Aplicații care necesită o gestionare precisă a excepțiilor Screen saver Extensiile kernelului și aplicațiile care depind de ele Aplicații Java înrudite sau aplicații Java cu JNI biblioteci care nu pot fi traduse Aplicații Java în aplicațiile traduse în limbajul Rosetta înseamnă că trebuie să utilizați aplicația de browser web Intel nativă pentru a încărca appleturile Java, nu versiunea moștenită PowerPC

Rosetta 2 (trecere la ARM/Apple silicon)

În 2020, Apple a anunțat Rosetta 2, care va fi inclusă cu macOS Big Sur și va ajuta la trecerea Mac la siliciul Apple de la procesoarele Intel . Pe lângă suportul de traducere just-in-time (JIT) disponibil în Rosetta, Rosetta 2 include suport de traducere pentru compilarea anticipată (AOT) [5] atunci când aplicația este instalată.

Opiniile experților

Performanța lui Rosetta 2 a fost foarte apreciată. În unele benchmark -uri , Rosetta 2 a avut performanțe mai bune decât vechile Mac-uri hardware proprietare ale Intel. Rosetta 2 funcționează pentru multe programe, dar nu pentru toate, unele nu funcționează deloc sau raportează „lenevie”. Multe programe pot fi făcute compatibile cu noile Mac-uri prin recompilare de către furnizorul de software, care este adesea o sarcină simplă, în timp ce pentru unele programe (cum ar fi cele care includ cod de asamblare sau generează cod de mașină ), modificările nu sunt ușoare sau automatizate.

Experiența utilizatorului

Ca și în prima versiune, Rosetta 2 de obicei nu necesită intervenția utilizatorului. Prima dată când un utilizator încearcă să ruleze o aplicație numai Intel, macOS îi solicită să instaleze Rosetta 2 dacă componenta nu este disponibilă. Lansările ulterioare ale programelor x86 vor fi efectuate automat prin traducere. Există, de asemenea, posibilitatea de a face binarul generic să funcționeze ca cod Intel prin Rosetta 2, chiar și pe o mașină bazată pe ARM .

Note

  1. Core Duo iMac-urile lansează noi  cipuri rapide . Macworld (28 ianuarie 2006). Preluat la 9 decembrie 2020. Arhivat din original pe 6 decembrie 2020.
  2. Tom Warren. Apple trece Mac-urile la propriile procesoare începând cu sfârșitul acestui  an . The Verge (22 iunie 2020). Preluat la 9 decembrie 2020. Arhivat din original la 22 iunie 2020.
  3. Stephen Shankland. Creierul din spatele Rosettei Apple : tranzitiv  . CNET . Preluat la 9 decembrie 2020. Arhivat din original la 1 martie 2016.
  4. În interiorul Mac OS X 10.7 Lion: Lipsă Front Row, Rosetta și Java  runtime . AppleInsider . Preluat la 9 decembrie 2020. Arhivat din original la 10 martie 2021.
  5. Keynote - WWDC 2020 -  Videoclipuri . Dezvoltator Apple . Preluat la 9 decembrie 2020. Arhivat din original la 18 septembrie 2020.