Rosetta (software) - Rosetta (software)

Rosetta
Word OSX intel.jpg
PowerPC -applikation (Microsoft Word til Mac 2004), der kører på Mac OS X til Intel i Rosetta
Udvikler (er) Apple Inc.
Operativ system Mac OS X 10.4.4–10.6.8 (Intel)
macOS 11.0 – nuværende (ARM)
Type PowerPC binær oversættelse (original version)
Intel binær oversættelse (Rosetta 2)

Rosetta er en dynamisk binær oversætter udviklet af Apple Inc. til macOS , et applikationskompatibilitetslag mellem forskellige instruktionssætarkitekturer . Det giver udviklere og forbrugere en overgangsperiode, hvor de kan opdatere deres applikationssoftware til at køre på nyere hardware ved at "oversætte" den til at køre på den forskellige arkitektur. Navnet "Rosetta" er en reference til Rosetta -stenen , artefakten, der muliggjorde oversættelse af egyptiske hieroglyffer .

Den første version af Rosetta, der blev introduceret i 2006 som en komponent i Mac OS X Tiger , var en del af Mac-overgangen fra PowerPC-processorer til Intel-processorer , hvilket tillod PowerPC- applikationer at køre på Intel-baserede Mac'er. Den anden version, der blev introduceret i 2020 som en komponent i macOS Big Sur , er en del af Mac -overgangen fra Intel -processorer til Apple -silicium , så Intel -applikationer kan køre på Apple -silicium -Mac'er.

Baggrund

Apple har brugt fire serier af CPU-arkitekturer i sin Macintosh- serie af computere: Motorola 68000-serien , PowerPC-serien , Intel Core-serien og sin egen serie af ARM-processorer . Hver overgang har gjort software, der er produceret til den tidligere arkitektur, uforenelig med den nye, hvilket har skabt et behov for software, der gør det muligt for den nyere platform at efterligne den tidligere.

Da det introducerede sine første PowerPC-systemer, inkluderede Apple software i System 7.1.2 og senere versioner af operativsystemet for at efterligne et system i 68000-serien . Denne emulator drager fordel af funktioner, der er indbygget i PowerPC -processorer, og får adgang til de aller laveste niveauer i OS, der kører på samme niveau som - og tæt forbundet til - Mac OS nanokernel . Dette betyder, at nanokernen er i stand til at opfange PowerPC -afbrydelser, oversætte dem til 68k afbrydelser (derefter foretage en omskiftning af blandet tilstand, hvis det er nødvendigt) og derefter udføre 68k -kode for at håndtere afbrydelserne. Dette tillader linjer med 68k og PowerPC -kode at blive spredt inden for den samme fedt -binær .

Rosetta

Apple udgav den første version af Rosetta i 2006, da den begyndte at skifte Macintosh -linjen fra PowerPC til Intel -processoren . Det blev oprindeligt inkluderet i Mac OS X v10.4.4 "Tiger", den version, der blev udgivet med de første Intel -baserede Mac'er, og giver mange PowerPC -applikationer mulighed for at køre på Intel -baserede Mac -computere uden ændringer. Rosetta er baseret på QuickTransit -teknologi. Det har ingen brugergrænseflade og starter efter behov uden notifikation af brugeren, hvilket fik Apple til at beskrive det som "den mest fantastiske software, du aldrig vil se". Rosetta er ikke installeret som standard i Mac OS X v10.6 "Snow Leopard", men er tilgængelig som en installerbar mulighed. Rosetta er hverken inkluderet eller understøttet i Mac OS X v10.7 "Lion" eller nyere, hvilket derfor ikke kan køre PowerPC -applikationer.

På grund af de større arkitektoniske forskelle mellem Intel- og PowerPC-processorer fungerer Rosetta på et højere niveau end 68000-emulatoren, som et program på brugerniveau , der kun kan opfange og efterligne kode på brugerniveau. Det oversætter G3 , G4 og AltiVec instruktioner, men ikke G5 instruktioner. Selvom de fleste kommercielle software til PowerPC-baserede Mac'er var kompatible med disse krav (G4-systemer blev stadig brugt i vid udstrækning på det tidspunkt), måtte alle programmer, der var afhængige af G5-specifikke instruktioner, ændres af deres udviklere til at arbejde på Rosetta-understøttet Intel- baserede Mac'er. Apple oplyste, at applikationer med kraftig brugerinteraktion men lave beregningsbehov (f.eks. Tekstbehandlere ) ville være bedst egnet til brug sammen med Rosetta, mens applikationer med høje beregningsbehov (f.eks. Spil, AutoCAD eller Photoshop ) ikke ville.

Rosetta understøtter heller ikke følgende:

  • Det klassiske miljø og dermed ethvert ikke-kulstof-program, der er bygget til Mac OS 9 eller tidligere
  • Kode, der indsætter præferencer i ruden Systemindstillinger
  • Applikationer, der kræver præcis undtagelseshåndtering
  • Pauseskærme
  • Kerneudvidelser og applikationer, der er afhængige af dem
  • Medfølgende Java -applikationer eller Java -programmer med JNI -biblioteker, der ikke kan oversættes
  • Java-applets i Rosetta-oversatte applikationer, hvilket betyder, at en native Intel-webbrowser-applikation i stedet for en ældre PowerPC-version skal bruges til at indlæse Java-applets

Rosetta 2

I 2020 annoncerede Apple, at Rosetta 2 ville blive bundlet med macOS Big Sur for at hjælpe med Mac -overgangen til Apple -silicium . Softwaren tillader, at mange applikationer, der udelukkende er kompileret til eksekvering på x86-64 -baserede processorer, kan oversættes til udførelse på Apple silicium.

Ud over just-in-time (JIT) oversættelsesstøtte tilbyder Rosetta 2 forudgående kompilering (AOT), med x86-64-koden fuldt oversat, kun én gang, når en applikation uden en universel binær er installeret på en Apple silicium Mac.

Rosetta 2s præstation er blevet rost meget. I nogle benchmarks klarede x86-64-programmer sig kun bedre under Rosetta 2 på en Mac med en Apple M1 SOC end indbygget på en Mac med en Intel x86-64-processor. En af de vigtigste grunde til, at Rosetta 2 leverer et så højt niveau af oversættelseseffektivitet, er understøttelsen af ​​x86-64 hukommelsesbestilling i Apple M1 SOC.

Selvom Rosetta 2 fungerer for de fleste software, fungerer noget software overhovedet ikke eller rapporteres at være "trægt". En masse software kan gøres kompatibel med de nye Mac'er ved at sælgeren genkompilerer softwaren, ofte en simpel opgave; mens for noget software (f.eks. software, der indeholder samlingens sprogkode, eller som genererer maskinkode ), er ændringerne for at få dem til at fungere ikke enkle og kan ikke automatiseres.

I lighed med den første version kræver Rosetta 2 normalt ikke brugerintervention. Når en bruger prøver at starte et x86-64-program kun for første gang, beder macOS dem om at installere Rosetta 2, hvis det ikke allerede er tilgængeligt. Efterfølgende lanceringer af x86-64 programmer udføres automatisk via oversættelse. Der findes også en mulighed for at tvinge en universel binær til at køre som x86-64 kode gennem Rosetta 2, selv på en ARM-baseret maskine.

Se også

Referencer

eksterne links