Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Фон [ править ]

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

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

Розетта [ править ]

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

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

Rosetta также не поддерживает следующее: [7]

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

Розетта 2 [ править ]

В 2020 году Apple объявила, что Rosetta 2 будет поставляться в комплекте с macOS Big Sur , чтобы облегчить переход Mac на Apple Silicon . Служба позволяет транслировать многие приложения, скомпилированные исключительно для выполнения на процессорах на базе x86-64, для выполнения на микросхеме Apple. [2] [8]

В дополнение к точно в срок поддержки перевода (JIT), Rosetta 2 предложения вперед-в-время компиляции (АОТ), с x86-64 кода полностью переведенной, только один раз, когда приложение без универсального двоичного файла устанавливается на Apple Silicon Mac. [9]

Производительность Rosetta 2 получила высокую оценку. [10] [11] В некоторых тестах программы только для x86-64 работали лучше в Rosetta 2 на Mac с Apple M1 SOC, чем изначально на Mac с процессором Intel x86-64. Одной из основных причин, по которой Rosetta 2 обеспечивает такой высокий уровень эффективности трансляции, является поддержка упорядочения памяти x86-64 в Apple M1 SOC. [12]

Хотя Rosetta 2 работает с большинством программ, некоторые программы вообще не работают [13] или считаются «вялыми». [14] Многие программы могут быть сделаны совместимыми с новыми компьютерами Mac, если поставщик перекомпилирует программное обеспечение, что часто является простой задачей; в то время как для некоторого программного обеспечения (например, программного обеспечения, которое включает код языка ассемблера или генерирует машинный код ), изменения, чтобы заставить их работать, непросты и не могут быть автоматизированы.

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

См. Также [ править ]

  • Жирный двоичный файл § Жирный двоичный файл Apple - объединенные приложения 68k / PPC, которые изначально работают на обоих процессорах
  • Универсальный двоичный файл - комбинированные приложения PPC / Intel, которые изначально работают на обоих процессорах
  • Универсальный двоичный файл 2 - комбинированные приложения Intel / ARM, которые изначально работают на обоих процессорах

Ссылки [ править ]

  1. ^ Core Duo iMacs представляет новые быстрые чипы. Архивировано 3 марта 2012 г. на Wayback Machine.
  2. ^ a b Уоррен, Том (22 июня 2020 г.). «Apple переводит Mac на собственные процессоры, начиная с конца этого года» . Грань . Проверено 22 июня 2020 года .
  3. ^ «Мозги Apple Rosetta: Transitive» . CNET News.com. 8 июня 2005 года архивации с оригинала на 14 июля 2014 года . Проверено 4 июля 2007 года .
  4. ^ "Розетта" . Яблоко. Архивировано 16 ноября 2010 года . Проверено 5 сентября 2011 года .
  5. ^ a b Персонал AppleInsider (26 февраля 2011 г.). «Mac OS X Lion удаляет Front Row, среду выполнения Java, Rosetta» . AppleInsider . AppleInsider, Inc. Архивировано 29 апреля 2014 года . Проверено 27 февраля 2011 года .
  6. ^ "Розетта" (PDF) . Руководство по универсальному двоичному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) на 3 августа 2012 года . Проверено 5 сентября 2011 года .
  7. ^ "Что можно перевести?" (PDF) . Руководство по универсальному двоичному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) на 3 августа 2012 года . Проверено 5 сентября 2011 года .
  8. Мэйо, Бенджамин (22 июня 2020 г.). «Apple объявляет о переходе архитектуры Mac с Intel на собственные чипы ARM, предлагает путь эмуляции» . 9to5Mac . Проверено 23 июня 2020 года .
  9. ^ Основной доклад WWDC2020 . Apple Inc., 22 июня 2020 г. Событие происходит в 1ч39м37с. Он переводит приложения, когда вы их устанавливаете, поэтому они могут запускаться немедленно и мгновенно реагировать. Rosetta 2 также может переводить код на лету, когда это необходимо.
  10. Эванс, Джонни (19 ноября 2020 г.). «Все, что вам нужно знать о Rosetta 2 для компьютеров Mac Apple Silicon» . Компьютерный мир . Проверено 8 декабря 2020 года .
  11. ^ «Да, Apple MacBook Pro M1 мощный, но время автономной работы поразит вас» . TechCrunch . Проверено 8 декабря 2020 года .
  12. ^ @ErrataRob (25 ноября 2020 г.). «4 / Итак, Apple просто обманула. Они добавили в свой ЦП упорядочение памяти Intel. При запуске транслированного кода x86 они переключают режим ЦП в соответствии с порядком памяти Intel» (твит) - через Twitter .
  13. Карлтон, Сэм (8 декабря 2020 г.). "ThatGuySam / Doesitarm" . Проверено 8 декабря 2020 года .
  14. ^ "r / mac - Приложения на Rosetta 2" . Reddit . Проверено 8 декабря 2020 года .

Внешние ссылки [ править ]

  • Веб-сайт Apple Rosetta на Wayback Machine (архивировано 7 января 2011 г.)
  • Веб-сайт Transitive Corporation на Wayback Machine (архивировано 14 сентября 2008 г.)
  • Индекс совместимости Rosetta
    • Это ARM?  - аналогичная страница совместимости для текущей Rosetta 2