Rosetta je dynamický binární překladač vyvinutý společností Apple Inc pro její operační systémy ( macOS ) pro kompatibilitu aplikací mezi různými architekturami instrukční sady . To dává vývojářům a spotřebitelům přechodné období, během kterého mohou upgradovat svůj aplikační software tak, aby běžel na novějším hardwaru jeho „migrací“ na jinou architekturu. Název „Rosetta“ je odkazem na Rosettskou desku , artefakt, který umožnil překlad egyptských hieroglyfů. [jeden]
První verze Rosetta, představená v roce 2006 jako součást Mac OS X Tiger , umožňuje aplikacím PowerPC běžet na počítačích Mac s procesorem Intel . Druhá verze, představená v roce 2020 jako součást macOS Big Sur , je součástí přechodu Macu z procesorů Intel na křemíkové procesory Apple založené na ARM . [2]
Apple ve své řadě počítačů Macintosh použil čtyři řady procesorových architektur , jmenovitě řadu Motorola 68000 , řadu PowerPC , řadu Intel Core a vlastní řadu procesorů typu ARM . Každý přechod způsobil, že software vytvořený pro dřívější architekturu nebyl kompatibilní s tou novou, což vyvolalo potřebu softwaru, který by nové platformě umožnil emulovat předchozí.
Když společnost představila své první systémy PowerPC, společnost Apple zahrnula software ve verzi 7.1.2 a později k emulaci systému řady 68000. Tento emulátor využívá funkce zabudované v procesorech PowerPC a přistupuje k nejnižším úrovním operačního systému, na kterém běží. na stejné úrovni jako nanokernel Mac OS a úzce s ním souvisí. To znamená, že nanokernel je schopen zachytit přerušení PowerPC , převést je na 68k přerušení (poté se v případě potřeby přepnout do smíšeného režimu) a poté spustit 68k kód pro zpracování přerušení. To vám umožňuje prokládat řádky 68k a kódu PowerPC do stejné tlusté binární soustavy .
Apple vydal první verzi Rosetta v roce 2006, kdy začal přecházet svou řadu Macintosh z PowerPC na procesor Intel. Původně byl součástí Mac OS X v10. 4.4 "Tiger", verze, která byla vydána s prvními počítači Mac s procesorem Intel a umožňuje mnoha aplikacím PowerPC běžet bez úprav na počítačích Mac s procesorem Intel. Rosetta je založena na technologii QuickTransit [3] , nemá žádné uživatelské rozhraní a běží podle potřeby bez upozornění uživatele, což vede Apple k tomu, aby ji popsal jako „nejúžasnější software, jaký kdy uvidíte“. Rosetta není ve výchozím nastavení nainstalována v systému Mac OS X v10. 6 " Sněžný leopard ", ale je k dispozici jako volitelná instalace. Rosetta není součástí ani podporována v systému Mac OS X v10. 7 "Lion" nebo novější, které proto nemohou spouštět aplikace PowerPC. [čtyři]
Kvůli velkým architektonickým rozdílům mezi procesory Intel a PowerPC běží Rosetta na vyšší úrovni než emulátor 68000 jako program na uživatelské úrovni, který dokáže zachytit a emulovat pouze kód na uživatelské úrovni. Překládá instrukce G3, G4 a AltiVec , ale ne instrukce G5. Ačkoli většina komerčních programů pro počítače založené na PowerPC byla s těmito požadavky kompatibilní (systémy G4 byly v té době stále široce používány), jakékoli aplikace, které se spoléhaly na konkrétní instrukce G5, museli jejich vývojáři upravit tak, aby běžely na počítačích s podporou Rosetta založených na Intel. Apple uvedl, že aplikace s intenzivní uživatelskou interakcí, ale nízkými výpočetními potřebami (jako jsou textové procesory ), jsou pro použití s Rosetta nejvhodnější, zatímco aplikace s vysokými výpočetními potřebami (jako hry, AutoCAD nebo Photoshop) nikoli.
Rosetta také nepodporuje následující:
Desktopové prostředí, a tedy jakákoli aplikace vytvořená pro Mac OS 9 nebo starší Kód, který vkládá nastavení do podokna Předvolby systému Aplikace, které vyžadují jemné zpracování výjimek Spořič obrazovky Rozšíření jádra a aplikace, které na nich závisí Související Java aplikace nebo Java aplikace s JNI knihovny, které nelze přeložit aplety Java v aplikacích přeložených do jazyka Rosetta znamená, že k načtení apletů Java musíte použít nativní aplikaci webového prohlížeče Intel, nikoli starší verzi PowerPC
V roce 2020 Apple oznámil Rosetta 2, která bude součástí macOS Big Sur a pomůže s přechodem Macu na křemík Apple z procesorů Intel . Kromě podpory překladu just-in-time (JIT) dostupné v aplikaci Rosetta obsahuje Rosetta 2 podporu překladu předběžné kompilace (AOT) [5] , když je aplikace nainstalována.
Výkon Rosetty 2 byl velmi chválen. V některých benchmarcích si Rosetta 2 vedla lépe než staré proprietární hardwarové Macy Intelu. Rosetta 2 funguje pro mnoho programů, ale ne pro všechny, některé nefungují vůbec nebo hlásí „pomalost“. Mnoho programů může být kompatibilních s novými Macy rekompilací dodavatelem softwaru, což je často jednoduchý úkol, zatímco u některých programů (například těch, které obsahují kód sestavení nebo generují strojový kód ), nejsou změny snadné ani automatizované.
Stejně jako u první verze Rosetta 2 obvykle nevyžaduje zásah uživatele. Když se uživatel poprvé pokusí spustit aplikaci pouze pro Intel, macOS jej vyzve k instalaci Rosetta 2, pokud komponenta není k dispozici. Následné spouštění x86 programů bude provedeno automaticky prostřednictvím překladu. Existuje také možnost, aby generický binární kód fungoval jako kód Intel prostřednictvím Rosetta 2, a to i na stroji založeném na ARM .