Розетта (программное обеспечение)
Разработчик(и) | Apple Инк. |
---|---|
Операционная система | Mac OS X 10.4.4–10.6.8 (Intel) macOS 11.0 – настоящее время (ARM) Linux гость [1] |
Тип | Бинарный перевод , эмуляция |
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 в одном двоичном формате .
Розетта
[ редактировать ]Переход на Mac Процессоры Intel |
---|
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]
- Классическая среда и, следовательно, любое приложение, не относящееся к Carbon, созданное для Mac OS 9 или более ранней версии.
- Код, который вставляет настройки в панель «Системные настройки»
- Приложения, требующие точной обработки исключений
- Хранители экрана
- Расширения ядра и приложения, которые от них зависят
- Связанные приложения Java или приложения Java с библиотеками JNI , которые невозможно перевести.
- Java-апплеты в приложениях, переведенных Rosetta, что означает, что для загрузки Java-апплетов необходимо использовать собственное приложение веб-браузера Intel, а не устаревшую версию PowerPC.
Розетта 2
[ редактировать ]Переход на Mac Яблочный кремний |
---|
В 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.
В macOS Sequoia Rosetta 2 была обновлена для поддержки трансляции инструкций AVX2 с процессоров Intel, чтобы улучшить совместимость игр, портируемых с помощью Apple Game Porting Toolkit .
См. также
[ редактировать ]- Жирный двоичный файл § Жирный двоичный файл Apple — объединенные приложения 68k/PPC, которые изначально работают на обоих процессорах.
- Универсальный двоичный файл — комбинированные приложения PPC/Intel, которые изначально работают на обоих процессорах.
- Universal 2binary — комбинированные приложения Intel/ARM, которые изначально работают на обоих процессорах.
Ссылки
[ редактировать ]- ^ «Запуск двоичных файлов Intel на виртуальных машинах Linux с помощью Rosetta» . Apple Inc. Проверено 7 августа 2022 г.
- ^ Норр, Генри (27 января 2006 г.). «Core Duo iMac дебютирует с новыми быстрыми чипами» . Макмир .
- ^ Jump up to: а б Уоррен, Том (22 июня 2020 г.). «Apple переводит компьютеры Mac на собственные процессоры, начиная с конца этого года» . Грань . Проверено 22 июня 2020 г.
- ^ «Мозг Apple Rosetta: переходный» . CNET . 8 июня 2005 года . Проверено 9 января 2023 г.
- ^ «Розетта» . Яблоко. Архивировано из оригинала 13 января 2006 года . Проверено 5 сентября 2011 г.
- ^ Jump up to: а б Сотрудники AppleInsider (26 февраля 2011 г.). «Mac OS X Lion отказывается от Front Row, среды выполнения Java и Rosetta» . AppleInsider . AppleInsider, Inc. Архивировано из оригинала 29 апреля 2014 года . Проверено 27 февраля 2011 г.
- ^ «Розетта» (PDF) . Универсальные рекомендации по бинарному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) 3 августа 2012 года . Проверено 5 сентября 2011 г.
- ^ «Универсальные приложения» . Яблоко. Архивировано из оригинала 3 марта 2016 года . Проверено 5 августа 2019 г.
- ^ «Что можно перевести?» (PDF) . Универсальные рекомендации по бинарному программированию, второе издание . Яблоко. Архивировано из оригинала (PDF) 3 августа 2012 года . Проверено 5 сентября 2011 г.
- ^ Мэйо, Бенджамин (22 июня 2020 г.). «Apple объявляет о переходе архитектуры Mac с Intel на собственные чипы ARM и предлагает путь эмуляции» . 9to5Mac . Проверено 23 июня 2020 г.
- ^ Основной доклад WWDC2020 . Apple Inc., 22 июня 2020 г. Событие происходит в 1 час 39 минут 37 минут.
Он переводит приложения при их установке, поэтому они могут запускаться немедленно и мгновенно реагировать. Rosetta 2 также может транслировать код «на лету», когда это необходимо.
- ^ Эванс, Джонни (19 ноября 2020 г.). «Все, что вам нужно знать о Rosetta 2 на компьютерах Apple Silicon Mac» . Компьютерный мир . Проверено 8 декабря 2020 г.
- ^ «Да, Apple M1 MacBook Pro мощный, но время автономной работы поразит вас» . ТехКранч . 17 ноября 2020 г. . Проверено 8 декабря 2020 г.
- ^ «Анализ порядка памяти моделей Apple M1» .
- ^ Дугалл, Дж. (9 ноября 2022 г.). «Почему Rosetta 2 быстрая?» . Проверено 15 августа 2023 г.
Расширения для манипуляции флагами ARM... Секретное расширение Apple...
- ^ Карлтон, Сэм (8 декабря 2020 г.). "ThatGuySam/doesitarm" . Гитхаб . Проверено 8 декабря 2020 г.
- ^ «r/mac — Приложения для Rosetta 2» . реддит . 29 ноября 2020 г. . Проверено 8 декабря 2020 г.
- ^ «Используйте Office для Mac с Rosetta и Apple Silicon» . support.microsoft.com . Проверено 21 июня 2021 г.
- ^ Доказано, Лиам (9 июня 2022 г.). «Apple предлагает улучшенную поддержку Linux в macOS 13» . Регистр . Проверено 6 января 2023 г.
- ^ Каннингем, Эндрю (7 июня 2022 г.). «Apple позволит виртуальным машинам Linux запускать приложения Intel с Rosetta в macOS Ventura» . Арс Техника . Проверено 6 января 2023 г.
- ^ «Виртуализация — запуск двоичных файлов Intel на виртуальных машинах Linux с помощью Rosetta» . Разработчик Apple . Проверено 6 января 2023 г.
Внешние ссылки
[ редактировать ]- Веб-сайт Apple Rosetta на Wayback Machine (архивировано 7 января 2011 г.)
- Веб-сайт Transitive Corporation на Wayback Machine (архивировано 14 сентября 2008 г.)
- Индекс совместимости Rosetta на Wayback Machine (архивировано 8 февраля 2006 г.)
- Это ARM? – Индекс совместимости Rosetta 2