Rosetta on dynaaminen binäärikääntäjä , jonka Apple Inc on kehittänyt käyttöjärjestelmilleen ( macOS ) sovellusten yhteensopivuutta varten eri käskysarjaarkkitehtuurien välillä . Tämä antaa kehittäjille ja kuluttajille siirtymäkauden, jonka aikana he voivat päivittää sovellusohjelmistonsa toimimaan uudemmilla laitteistoilla "siirtämällä" sen eri arkkitehtuuriin. Nimi "Rosetta" viittaa Rosettan kiveen , esineeseen, joka mahdollisti egyptiläisten hieroglyfien kääntämisen. [yksi]
Rosettan ensimmäinen versio, joka esiteltiin vuonna 2006 Mac OS X Tigerin osana , mahdollistaa PowerPC -sovellusten ajamisen Intel-pohjaisissa Maceissa . Toinen versio, joka esiteltiin vuonna 2020 macOS Big Surin osana, on osa Macin siirtymistä Intel-prosessoreista ARM - pohjaisiin Applen piiprosessoreihin . [2]
Apple on käyttänyt neljää sarjaa prosessoriarkkitehtuuria Macintosh-tietokoneissaan , nimittäin Motorola 68000 - sarjaa , PowerPC - sarjaa , Intel Core - sarjaa ja omaa ARM - tyyppistä prosessorisarjaa . Jokainen siirtymä teki aikaisemmalle arkkitehtuurille rakennetun ohjelmiston yhteensopimattomiksi uuden kanssa, mikä loi tarpeen ohjelmistolle, jonka avulla uusi alusta voisi emuloida edellistä.
Kun yritys esitteli ensimmäiset PowerPC-järjestelmänsä, Apple sisällytti ohjelmiston OS-versioon 7.1.2 ja uudempiin emuloidakseen 68000-sarjan järjestelmää. Tämä emulaattori hyödyntää PowerPC-prosessoreihin sisäänrakennettuja ominaisuuksia ja käyttää alhaisimpia käyttöjärjestelmän tasoja. samalla tasolla kuin Mac OS:n nanoydin ja liittyy läheisesti siihen. Tämä tarkoittaa, että nanoydin pystyy sieppaamaan PowerPC- keskeytyksiä , muuttamaan ne 68 000 keskeytyksiksi (ja sitten vaihtamaan tarvittaessa sekoitettuun tilaan) ja suorittamaan sitten 68 000 koodia keskeytysten käsittelemiseksi. Tämän avulla voit lomittaa 68k:n ja PowerPC-koodin rivejä samaan rasvabinaariin .
Apple julkaisi ensimmäisen version Rosettasta vuonna 2006, kun se alkoi vaihtaa Macintosh -linjaansa PowerPC : stä Intel-prosessoriin. Se sisältyi alun perin Mac OS X v10:een. 4.4 "Tiger", versio, joka julkaistiin ensimmäisten Intel-pohjaisten Mac-tietokoneiden kanssa ja mahdollistaa useiden PowerPC-sovellusten käytön muuttamattomana Intel-pohjaisissa Maceissa. Rosetta perustuu QuickTransit-tekniikkaan [3] , sillä siinä ei ole käyttöliittymää ja se toimii tarpeen mukaan ilman ilmoitusta käyttäjälle, minkä vuoksi Apple kuvailee sitä "upeaksi ohjelmistoksi, jonka olet koskaan nähnyt". Rosettaa ei ole asennettu oletusarvoisesti Mac OS X v10:ssä. 6 " Snow Leopard ", mutta saatavana asennettavana lisävarusteena. Rosetta ei sisälly Mac OS X v10:een tai tue sitä. 7 "Lion" tai uudempi, mikä ei siksi voi ajaa PowerPC-sovelluksia. [neljä]
Intel- ja PowerPC-suorittimien välisten suurten arkkitehtonisten erojen vuoksi Rosetta toimii korkeammalla tasolla kuin 68000-emulaattori käyttäjätason ohjelmana, joka voi siepata ja emuloida vain käyttäjätason koodia. Se kääntää G3-, G4- ja AltiVec-ohjeet , mutta ei G5-ohjeita. Vaikka useimmat kaupalliset ohjelmat PowerPC-pohjaisille tietokoneille olivat yhteensopivia näiden vaatimusten kanssa (G4-järjestelmiä käytettiin vielä tuolloin laajalti), kehittäjien täytyi muokata kaikkia tiettyihin G5-ohjeisiin perustuvia sovelluksia, jotta ne toimisivat Rosettan tukemissa tietokoneissa. Intel. Apple on sanonut, että sovellukset, joissa on paljon käyttäjän vuorovaikutusta mutta vähän laskentatarpeita (kuten tekstinkäsittelyohjelmat ), sopivat parhaiten käytettäviksi Rosettan kanssa, kun taas sovellukset, jotka vaativat paljon laskentaa (kuten pelit, AutoCAD tai Photoshop) eivät sovellu.
Rosetta ei myöskään tue seuraavia:
Työpöytäympäristö ja siten kaikki Mac OS 9:lle tai aikaisemmalle koodille rakennetut sovellukset, jotka lisäävät asetukset Järjestelmäasetukset-ruutuun Sovellukset, jotka vaativat hienorakeista poikkeuskäsittelyä Näytönsäästäjä Ytimen laajennukset ja niistä riippuvat sovellukset Liittyvät Java-sovellukset tai Java-sovellukset, joissa on JNI kirjastot, joita ei voida kääntää Java-sovelmat Rosetta-kielelle käännetyissä sovelluksissa tarkoittavat, että Java-sovelmien lataamiseen on käytettävä Intelin alkuperäistä selainsovellusta, ei vanhaa PowerPC-versiota
Vuonna 2020 Apple julkisti Rosetta 2:n, joka sisällytetään macOS Big Suriin ja auttaa Macin siirtymisessä Applen piin käyttöön Intel-prosessoreista . Rosettassa saatavilla olevan just-in-time-käännöstuen (JIT) lisäksi Rosetta 2 sisältää AOT - käännöstuen [5] , kun sovellus on asennettu.
Rosetta 2:n suorituskykyä kehuttiin suuresti. Joissakin vertailuissa Rosetta 2 suoriutui paremmin kuin Intelin vanhat laitteisto-Macit. Rosetta 2 toimii monissa ohjelmissa, mutta ei kaikissa, jotkut eivät toimi ollenkaan tai ilmoittavat "hiljaisuudesta". Monet ohjelmat voidaan tehdä yhteensopiviksi uusien Mac-tietokoneiden kanssa ohjelmistotoimittajan uudelleenkääntämisellä, mikä on usein yksinkertainen tehtävä, kun taas joidenkin ohjelmien (kuten kokoonpanokoodin sisältävien tai konekoodin luovien ohjelmien ) muutokset eivät ole helppoja tai automaattisia.
Kuten ensimmäinen versio, Rosetta 2 ei yleensä vaadi käyttäjän toimia. Ensimmäisen kerran, kun käyttäjä yrittää käyttää vain Intel-sovellusta, macOS kehottaa asentamaan Rosetta 2:n, jos komponenttia ei ole saatavilla. Myöhemmät x86 - ohjelmien käynnistykset suoritetaan automaattisesti käännöksen kautta. On myös mahdollisuus saada yleinen binääri toimimaan Intel -koodina Rosetta 2:n kautta, jopa ARM -pohjaisessa koneessa .