stringtranslate.com

Розетта (программное обеспечение)

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

Первая версия Rosetta, представленная в 2006 году в Mac OS X Tiger , была частью перехода Mac от процессоров PowerPC к процессорам Intel , позволяя приложениям PowerPC работать на компьютерах Mac на базе Intel . Поддержка Rosetta была прекращена с выпуском Mac OS X Lion (10.7) в 2011 году.

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

Фон

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

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

Розетта

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

Из-за больших архитектурных различий между процессорами Intel и PowerPC Rosetta работает на более высоком уровне, чем эмулятор 68000, как программа пользовательского уровня , которая может только перехватывать и эмулировать код пользовательского уровня. Он транслирует инструкции G3 , G4 и AltiVec , но не инструкции G5 . Хотя большая часть коммерческого программного обеспечения для компьютеров Mac на базе PowerPC была совместима с этими требованиями (системы G4 все еще широко использовались в то время), любые приложения, которые полагались на инструкции, специфичные для G5, должны были быть модифицированы их разработчиками для работы на поддерживаемых Rosetta процессорах Intel. на базе Mac. Apple сообщила, что приложения с интенсивным взаимодействием с пользователем, но низкими вычислительными потребностями (например, текстовые процессоры ) лучше всего подходят для использования с Rosetta, а приложения с высокими вычислительными потребностями (например, игры, AutoCAD или Photoshop ) — нет. [7] Существующие ранее версии PowerPC приложений для медиапроизводства Apple «Pro» (таких как Final Cut Pro , Motion, Aperture и Logic Pro) не поддерживаются Rosetta и требуют «перекрестного обновления» [8] до универсального двоичного файла. версия для работы на компьютерах Mac на базе Intel с поддержкой Rosetta.

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

Розетта 2

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

Установить Rosetta 2 на Apple Silicon Mac можно двумя способами: либо с помощью Терминала для прямой установки программы, либо путем попытки открыть приложение, скомпилированное для x86-64, которое откроет окно установки.

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

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

Хотя Rosetta 2 работает с большинством программного обеспечения, некоторые программы не работают вообще [16] или считаются «медленными». [17]

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

Начиная с macOS Ventura , пользователи, использующие виртуальные машины с Linux в качестве гостевой операционной системы, могут использовать Rosetta 2 для запуска кода x86-64, скомпилированного для Linux, [19] на виртуальной машине. Rosetta 2 работает как двоичный файл времени выполнения, который необходимо установить в гостевой операционной системе. Были случаи [20] , когда разработчики устанавливали этот двоичный файл времени выполнения на стороннее оборудование при условии, что оно включает в себя ЦП , поддерживающий как минимум набор инструкций ARMv8.2-A ; порядок памяти будет отличаться от родного x86. Некоторые разработчики отметили, что это может нарушить лицензионные соглашения macOS, поскольку среда выполнения включена [21] в структуру виртуализации Apple.

Смотрите также

Рекомендации

  1. ^ «Запуск двоичных файлов Intel на виртуальных машинах Linux с помощью Rosetta». Apple Inc. Проверено 7 августа 2022 г.
  2. Норр, Генри (27 января 2006 г.). «Core Duo iMac дебютирует с новыми быстрыми чипами» . Макмир .
  3. ↑ Аб Уоррен, Том (22 июня 2020 г.). «Apple переводит компьютеры Mac на собственные процессоры, начиная с конца этого года». Грань . Проверено 22 июня 2020 г.
  4. ^ «Мозг Apple Rosetta: переходный». CNET . 8 июня 2005 года . Проверено 9 января 2023 г.
  5. ^ "Розетта". Яблоко. Архивировано из оригинала 13 января 2006 года . Проверено 5 сентября 2011 г.
  6. ^ ab AppleInsider Staff (26 февраля 2011 г.). «Mac OS X Lion отказывается от Front Row, среды выполнения Java, Rosetta». AppleInsider . AppleInsider, Inc. Архивировано из оригинала 29 апреля 2014 года . Проверено 27 февраля 2011 г.
  7. ^ «Розетта» (PDF) . Универсальные рекомендации по бинарному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) 3 августа 2012 года . Проверено 5 сентября 2011 г.
  8. ^ «Универсальные приложения». Яблоко. Архивировано из оригинала 3 марта 2016 года . Проверено 5 августа 2019 г.
  9. ^ "Что можно перевести?" (PDF) . Универсальные рекомендации по бинарному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) 3 августа 2012 года . Проверено 5 сентября 2011 г.
  10. Мэйо, Бенджамин (22 июня 2020 г.). «Apple объявляет о переходе архитектуры Mac с Intel на собственные чипы ARM и предлагает путь эмуляции». 9to5Mac . Проверено 23 июня 2020 г.
  11. ^ Основной доклад WWDC2020. Apple Inc., 22 июня 2020 г. Событие происходит в 1 час 39 минут 37 минут. Он переводит приложения при их установке, поэтому они могут запускаться немедленно и мгновенно реагировать. Rosetta 2 также может транслировать код «на лету», когда это необходимо.
  12. Эванс, Джонни (19 ноября 2020 г.). «Все, что вам нужно знать о Rosetta 2 на компьютерах Apple Silicon Mac». Компьютерный мир . Проверено 8 декабря 2020 г.
  13. ^ «Да, MacBook Pro от Apple M1 мощный, но время автономной работы вас поразит». ТехКранч . 17 ноября 2020 г. . Проверено 8 декабря 2020 г.
  14. ^ @ErrataRob (25 ноября 2020 г.). «4/ Итак, Apple просто обманула. Они добавили в свой процессор систему упорядочения памяти Intel. При запуске транслированного кода x86 они переключают режим процессора в соответствии с порядком памяти Intel» (Твит) – через Twitter .
  15. Дугалл, Дж. (9 ноября 2022 г.). «Почему Rosetta 2 быстрая?» . Проверено 15 августа 2023 г. Расширения для манипуляции флагами ARM... Секретное расширение Apple...
  16. Карлтон, Сэм (8 декабря 2020 г.). «ThatGuySam/doesitarm». Гитхаб . Проверено 8 декабря 2020 г.
  17. ^ «r/mac — Приложения для Rosetta 2» . реддит . 29 ноября 2020 г. . Проверено 8 декабря 2020 г.
  18. ^ «Используйте Office для Mac с Rosetta и Apple Silicon». support.microsoft.com . Проверено 21 июня 2021 г.
  19. Доказано, Лиам (9 июня 2022 г.). «Apple предлагает улучшенную поддержку Linux в macOS 13». Регистр . Проверено 6 января 2023 г.
  20. Каннингем, Эндрю (7 июня 2022 г.). «Apple позволит виртуальным машинам Linux запускать приложения Intel с Rosetta в macOS Ventura». Арс Техника . Проверено 6 января 2023 г.
  21. ^ «Виртуализация — запуск двоичных файлов Intel на виртуальных машинах Linux с Rosetta» . Разработчик Apple . Проверено 6 января 2023 г.

Внешние ссылки