Что такое rosetta apple

Обновлено: 06.07.2024

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

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

СОДЕРЖАНИЕ

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 . У него нет пользовательского интерфейса, и он запускается по мере необходимости без уведомления пользователя, что заставило Apple охарактеризовать его как «самое удивительное программное обеспечение, которое вы никогда не увидите». Rosetta не устанавливается по умолчанию в Mac OS X v10.6 «Snow Leopard», но доступна как устанавливаемая опция. Rosetta не входит и не поддерживается в Mac OS X v10.7 «Lion» или более поздней версии , поэтому не могут запускать приложения PowerPC.

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

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

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

Розетта 2

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

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

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

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

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

Rosetta 2 позволяет компьютерам Mac с процессорами Apple использовать приложения, созданные для компьютеров Mac с процессорами Intel.

Установка Rosetta

Если у вас Mac с процессором Apple, появится запрос на установку Rosetta при первом открытии программы, созданной для компьютера Mac с процессором Intel. Щелкните «Установить», а затем введите свое имя пользователя и пароль, чтобы продолжить установку.

Предупреждение. Чтобы открыть приложение, необходимо установить Rosetta. Установить его сейчас?

После установки Rosetta, она будет доступна для всех остальных приложений, поэтому вам не будет предложено установить ее повторно. Если вы решите не устанавливать Rosetta сейчас, при следующем открытии приложения, для которого требуется Rosetta, появится соответствующий запрос.

Использование Rosetta

Rosetta - это не программа, которую нужно открывать. При использовании приложения, созданного только для компьютеров Mac с процессорами Intel, Rosetta работает в фоновом режиме. Она преобразует приложение для использования с процессором Apple.

В большинстве случаев нет заметной разницы в производительности приложений, которым требуется Rosetta. Однако следует обратиться к разработчику приложения, чтобы узнать о версии, которая способна использовать всю мощь и производительность процессора Apple.

Каким из ваших приложений требуется Rosetta?

С помощью функции «Свойства» можно определить приложения, которые нуждаются в системе Rosetta или могут ее использовать:

  1. Выберите приложение в Finder.
  2. В меню «Файл» в строке меню выберите «Свойства».
  3. См. информацию с пометкой Kind:
    • Приложение (Intel) означает, что приложение поддерживает только процессоры Intel и ему требуется Rosetta для работы на любом компьютере Mac с процессором Apple.
    • Приложение (универсальное) означает, что приложение поддерживает процессоры Apple и Intel и по умолчанию использует процессор Apple.

Только для универсальных программ в окне «Сведения» есть параметр «Открывать с помощью Rosetta». Этот параметр позволяет универсальным программам, таким как веб-браузеры или программы электронной почты, использовать плагины, расширения и другие надстройки, которые не были обновлены для поддержки процессора Apple. Если универсальная программа не распознает надстройку, установленную для нее, вы можете выйти из программы, выбрать этот параметр и повторить попытку.

Очень кратко о моем первом опыте использования (бенчмарков не ждать).

Сразу после онлайн презентации, где Apple представили свои новые продукты на собственном чипе, я отправился на сайт и, выбирая между MacBook Pro и Mac Mini, остановился на втором. Так как большого смысла в том, чтобы брать еще одну прошку в наше "работай из дома" время я не увидел, плюс 13-дюймовый экран мне показался маленьким, а единственной фичей, за которую я бы предпочел макбук, был трекпад. Поэтому наличие Magic Mouse, валяющейся на нижней полке в шкафу, развеяло все сомнения. Выбор пал на Мак Мини с 16Гб оперативной памяти и 1Тб SSD.

Начнем с того, что заказ обещали привезти 24-27 ноября, а привезли 17. Шел он ко мне из Китая и дошел успешно. Минималистичная упаковка, минимум бумажек и кабель питания - в общем все как полагается.


В коробке у нас небольшой серый блок с 2 USB-A, 2 USB-C, HDMI, Ethernet, разъемом для питания и небольшим отверстием системы охлаждения.


Первый запуск

Переходим к софту

Я в основном занимаюсь web-разработкой: Java на бакенде и Vue (node js для сборки) на фронте, работаю в IDE от Jetbrains. С чего здесь начать? С того, что ничего из этого не портировано под новую архитектуру, и именно тем, как они справились с этой проблемой, я был восхищен. Сразу после настройки системы, я пошел шерстить гитхабы на предмет того, как все это добро собрать под новый проц (кто-то подготовил EA версии, кто-то патчи, кто-то еще тестирует, а кто-то пока даже не чешется).

Первое, что я решил сделать: установить хром, чтобы восстановить все свои закладки и начать настраивать среду. Ребята из гугла предоставили версию под M1. Установил, и первым его действием был вопрос - хочу ли я сделать его браузером по умолчанию, а вторым - краш при попытке войти в аккаунт. Удалив хром, я немного приуныл. Ну что же, мне ничего не оставалось, как довериться Apple и начать вести себя как юзер, вместо того, чтобы шерстить трекеры на предмет готовности той или иной софтины к M1.

Rosetta 2

Я просто пошел и скачал тулбокс от Jetbrains, установил его и запустил, на что ОС мне выкинула окошко, мол, этот софт еще не поддерживает новую архитектуру, хочу ли я установить Rosetta и запустить через неё, на что я ответил да и больше ни разу не видел этого окна. Тулбокс запустился, я затянул им phpstorm и IDEA, и они запустились без каких-либо проблем и полностью прозрачно.

IDEA подтянула мне последнюю версию JDK, и дальше все было как обычно - стабильно и быстро, каких-то реальных провалов по производительности я не заметил, за исключением пожалуй того, что обе IDE запускались дольше секунд на 5-10. (В комментариях меня попросили отметить, что это все же время холодного старта - когда вы видите цветной прямоугольник на котором написано название запускаемой IDE. Что вполне ожидаемо исходя из документации Rosetta 2. Однако все остальные операции остались без заметных изменений, например загрузка проекта). Также немного просел хот-релоад, теперь он занимает на 2-3 секунды дольше чем обычно, примерно 5%-10%.

Дальше дело было за фронтом. Также просто скачал установщик с сайта node.js и запустил. Один из свежих проектов подтянул зависимости и собрал все, что ему нужно (с помощью node-gyp). Фронт собирается также медленно, как и на моем PC, какой-то заметной разницы я не обнаружил. Второй проект упал на сборке node-sass, но после обновления зависимостей все завелось.


Spotify, Steam - также спокойно запустились через Розетту. Ради интереса я попробовал запустить Доту, она запустилась, играть можно, но просадки ФПС сильно заметны. Другие игрушки, оптимизированные под платформу Эплла, играются куда лучше.

Температура Mac Mini, за время его активного использования, ощутимо не изменялась (корпус все время был холодный).

Не смотря на то, что довольно много приложений все еще не портировано, устройство имеет хороший потенциал, ведь даже приложения, запущенные через Rosetta, практически не отстают от их же производительности на нативной х86_64 платформе. (В сравнение с моей текущая конфигурацией AMD Ryzen 7 2700X/32Gb ОЗУ/SSD) А общая производительность системы с запущенными несколькими средами разработки, браузером с десятками вкладок, вебпак сервером с хот-релодом и объемного приложения на спринге не может не впечатлить, учитывая наличие всего 16Гб оперативной памяти. Будет интересно посмотреть, что будет, когда все эти приложения будут запущены нативно.

По итогу, пользоваться девайсом мне понравилось. Я понимаю, что на пути будет много трудностей, но могу с уверенностью сказать, что покупкой я доволен и буду пытаться переносить всю свою разработку с моего Linux PC на новый мак мини.

После перехода новых Mac на архитектуру ARM многие стали беспокоиться, что это вызовет проблемы совместимости старых приложений, разработанных для Intel, с процессором M1. Но Apple заранее обо всём позаботилась и встроила в macOS эмулятор Rosetta 2, который по сути заставляет приложение думать, что оно запускается на Intel, а не на M1. Со стороны пользователя при этом всё выглядит, как обычно, он только видит предупреждение, что приложение будет запущенно с помощью Rosetta 2. Для многих пользователей Mac на M1 это сейчас главная функция macOS, так как софт ещё не до конца оптимизирован под M1. Однако в новой macOS 11.3 некоторые пользовали, похоже, потеряют доступ к Rosetta 2.

Rosetta 2

После отключения Rosetta многие пользователи могут лишиться доступа к приложениям под Intel

Куда пропала Rosetta из macOS

Одним из первых на информацию об отсутствии Rosetta 2 в бете macOS 11.3 обратил внимание разработчик Стив Мозер. В коде операционной системы он обнаружил следующую строчку:

Rosetta будет удалена после установки этого обновления

А также ещё одну:

Rosetta больше недоступна в этом регионе. Приложения, которые требуют Rosetta, больше не запустятся.

О каких именно регионах (странах в случае с Apple) идёт речь, непонятно. Возможно, компания столкнулась с какими-то юридическими или иными территориальными ограничениями. Вряд ли Rosetta уберут с компьютеров, которые находятся в США, но миллионы других Mac в остальных странах прямо сейчас находятся под угрозой. Да, в том числе те, которые были приобретены и используются в России.

Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.

Что такое Rosetta 2

С помощью Rosetta 2 компьютеры Mac с архитектурой ARM запускают приложения, изначально написанные для Intel, на M1. Эмулятор по умолчанию вшит в прошивку всех компьютеров Apple с ARM-чипами и работает полностью автоматически. Например, чтобы запустить, скажем, приложение, которое пока официально поддерживает только архитектуру x86, нет нужды запускать Rosetta 2 отдельно (да у вас и не получится, потому что в системе нет специальной кнопки). Как только вы попытаетесь запустить приложение, Rosetta 2 включится автоматически.


Именно Rosetta 2 позволяет запускать Intel-приложения на M1

Rosetta 2 поддерживает 99 приложений из 100, то есть работа со всеми программами изначально и не гарантируется. В то же время пока никто в Сети или в нашем чате в Telegram не жаловался на проблемы совместимости. Разве что все говорят про Docker, версии которого нет под M1.

Также по теме: Как устанавливать на Mac приложения для Windows

А почему эмулятор называется именно Rosetta 2? Просто Rosetta в 2005 году в Apple назвали программу, которая переводила код приложений, написанных под PowerPC, в среду Intel x86. Из-за чего переход Mac с процессоров PowerPC на Intel многие пользователи не заметили. С Rosetta в первые дни случались проблемы – но их было немного и они были устранены с невероятной быстротой. А когда переход закончился, в течение еще нескольких лет в новые версии Mac OS X включалась Rosetta, и некоторые старые программы, аналогов которым не было и не будет, продолжали работать. Медленнее, чем на PowerPC, но с приемлемой скоростью.

Читайте также: