Rosetta (программное обеспечение)

Rosetta — динамический двоичный транслятор, разработанный компанией Apple Inc для своих операционных систем (macOS) для совместимости приложений между различными архитектурами набора команд. Это дает разработчикам и потребителям переходный период, в течение которого они могут обновить свое прикладное программное обеспечение для работы на более новом оборудовании, «переведя» его на другую архитектуру. Название «Розетта» является отсылкой к Розеттскому камню, артефакту, который позволил перевести египетские иероглифы.[1]

Microsoft Word для PowerPC, работающий на компьютере Mac с процессором Intel

Первая версия Rosetta, представленная в 2006 году как компонент Mac OS X Tiger, позволяет приложениям PowerPC работать на компьютерах Mac на базе Intel. Вторая версия, представленная в 2020 году как компонент macOS Big Sur, является частью перехода Mac от процессоров Intel к своим процессорам Apple silicon, производимых по технологии ARM.[2]

Разработка править

Apple использовала четыре серии процессорных архитектур в своей линейке компьютеров Macintosh, а именно: Motorola 68000 series, PowerPC series, Intel Core series и свою собственную серию процессоров ARM-типа. Каждый переход делал программное обеспечение, созданное для более ранней архитектуры, несовместимым с новой, создавая потребность в программном обеспечении, позволяющем новой платформе эмулировать предыдущую.

Когда компания представила свои первые системы PowerPC, Apple включила программное обеспечение в ОС версии 7.1.2 и более поздние для эмуляции системы серии 68000. Этот эмулятор использует преимущества функций, встроенных в процессоры PowerPC, и получает доступ к самым нижним уровням ОС, работающим на том же уровне, что и наноядро Mac OS, и тесно связанным с ним. Это означает, что наноядро способно перехватывать прерывания PowerPC, переводить их в прерывания 68k (затем, при необходимости, переключать смешанный режим), а затем выполнять код 68k для обработки прерываний. Это позволяет чередовать строки кода 68k и PowerPC в одном двоичном файле fat.

Rosetta (переход на Intel) править

Apple выпустила первую версию Rosetta в 2006 году, когда она начала переключать линейку Macintosh с PowerPC на процессор Intel. Первоначально он был включен в Mac OS X v10. 4. 4 «Tiger», версию, которая была выпущена с первыми компьютерами Mac на базе Intel, и позволяет многим приложениям PowerPC работать на компьютерах Mac на базе Intel без изменений. Rosetta основана на технологии QuickTransit[3] он не имеет пользовательского интерфейса и запускается по мере необходимости без уведомления Пользователя, что привело Apple к описанию его как «самого удивительного программного обеспечения, которое вы никогда не увидите». Rosetta не устанавливается по умолчанию в Mac OS X v10. 6 «Snow Leopard», но доступна в качестве устанавливаемой опции. Rosetta не входит и не поддерживается в Mac OS X v10. 7 «Lion» или более поздняя версия, которая поэтому не может запускать приложения PowerPC.[4]

Преимущества править

Из-за больших архитектурных различий между процессорами Intel и PowerPC Rosetta работает на более высоком уровне, чем эмулятор 68000, как программа пользовательского уровня, которая может только перехватывать и эмулировать код пользовательского уровня. Он переводит инструкции G3, G4 и AltiVec, но не инструкции G5. Хотя большинство коммерческих программ для компьютеров на базе PowerPC было совместимо с этими требованиями (системы G4 все еще широко использовались в то время), любые приложения, которые полагались на конкретные инструкции G5, должны были быть изменены их разработчиками для работы на поддерживаемых Rosetta компьютерах на базе Intel. Apple сообщила, что приложения с интенсивным взаимодействием с пользователем, но низкими вычислительными потребностями (например, текстовые процессоры) лучше всего подходят для использования с Rosetta, в то время как приложения с высокими вычислительными потребностями (такие как игры, AutoCAD или Photoshop) — нет.

Ограничения поддержки править

Розетта также не поддерживает следующее:

  • Классическую среду и, следовательно, любое приложение, созданное для Mac OS 9 или более ранних версий
  • Код, который вставляет настройки в панель системных настроек
  • Приложения, требующие точной обработки исключений
  • Экранная заставка
  • Расширения ядра и зависящие от них приложения
  • Связанные Java-приложения или Java-приложения с библиотеками JNI, которые не могут быть переведены
  • Java-апплеты в приложениях, переведенных на язык Rosetta, означают, что для загрузки Java-апплетов необходимо использовать собственное приложение Intel web browser, а не устаревшую версию PowerPC

Rosetta 2 (переход на ARM/Apple silicon) править

В 2020 году Apple анонсировала Rosetta 2, которая будет включена в состав macOS Big Sur и поможет в переходе Mac на Apple silicon с процессоров Intel. В дополнение к поддержке перевода just-in-time (JIT), доступной в Rosetta, Rosetta 2 включает поддержку перевода ahead-of-time compilation[5] при установке приложения.

Экспертные оценки править

Производительность «Rosetta 2» была высоко оценена. В некоторых бенчмарках Rosetta 2 работала лучше, чем старые собственные аппаратные компьютеры Intel Mac. Rosetta 2 работает для многих программ, но не для всех, некоторые вообще не работают или сообщают о «вялости». Многие программы можно сделать совместимыми с новыми компьютерами Mac путем перекомпиляции поставщиком программного обеспечения, что часто является простой задачей, в то время как для некоторых программ (например тех, которые включают код на ассемблере или генерируют машинный код) изменения не являются простыми или автоматизированными.

Пользовательский опыт править

Как и в первой версии, Rosetta 2 обычно не требует вмешательства пользователя. Когда пользователь впервые пытается запустить приложение только для Intel, macOS предлагает ему установить Rosetta 2, если компонент не доступен. Последующие запуски x86-программ будут выполняться через перевод автоматически. Существует также возможность заставить универсальный двоичный файл работать как код Intel через Rosetta 2, даже на машине на базе ARM.

Примечания править

  1. Core Duo iMacs debut speedy new chips (англ.). Macworld (28 января 2006). Дата обращения: 9 декабря 2020. Архивировано 6 декабря 2020 года.
  2. Tom Warren. Apple is switching Macs to its own processors starting later this year (англ.). The Verge (22 июня 2020). Дата обращения: 9 декабря 2020. Архивировано 22 июня 2020 года.
  3. Stephen Shankland. The brains behind Apple's Rosetta: Transitive (англ.). CNET. Дата обращения: 9 декабря 2020. Архивировано 1 марта 2016 года.
  4. Inside Mac OS X 10.7 Lion: Missing Front Row, Rosetta and Java runtime (англ.). AppleInsider. Дата обращения: 9 декабря 2020. Архивировано 10 марта 2021 года.
  5. Keynote - WWDC 2020 - Videos (англ.). Apple Developer. Дата обращения: 9 декабря 2020. Архивировано 18 сентября 2020 года.