Со своим новым процессором компьютеры Apple M1 Mac обеспечивают революционную производительность, но приложения, созданные для работы на чипах Intel, возможно, потребуют использования новой технологии преобразования Rosetta для работы. Что это такое и для чего он нужен?
Поддержка перехода к Apple Silicon с помощью Rosetta
Решение Apple перейти на Apple Silicon - это действующий проект. Теперь компания контролирует будущее всех своих платформ, а ее процессоры уже впечатляют пользователей своей производительностью и стабильностью.
Чип M1 может похвастаться 8-ядерным процессором и самой быстрой в мире встроенной графикой на Mac. Производительность ЦП на MacBook Air обещает быть примерно в 3,5 раза выше, производительность графического процессора в 5 раз выше, а машинное обучение - до 9 раз.
Тем не менее, приложения создаются для работы на определенных процессорах, и не каждый разработчик проделал всю работу, необходимую для того, чтобы их приложения работали на компьютерах Apple Silicon Mac как обычно. Компьютеры Mac на базе M1 могут запускать собственные, универсальные (в которых установщик содержит код для чипов Intel и Apple) и приложения Intel.
Apple поощряет разработчиков выпускать универсальные приложения, по возможности, и даст возможность запускать приложения Intel на платформе Apple с использованием технологии эмуляции под названием Rosetta 2.
Что такое Rosetta/Розетта 2?
Rosetta 2 - это эмулятор, предназначенный для перехода между процессорами Intel и Apple. Проще говоря, он портирует приложения, созданные для Intel, таким образом, чтобы они работали на Apple Silicon.
Есть также некоторые приложения (включая приложения Microsoft Office), которые переводятся при первом запуске. Необходимость перевода при первом запуске означает, что приложения могут изначально запускаться немного медленнее, чем обычно (в некоторых случаях до 20 секунд), но вы не испытаете такой же задержки при следующем запуске приложения.
Весь процесс происходит в фоновом режиме, и, хотя это может немного повлиять на производительность, в ранних отчетах предполагается, что прирост производительности при переходе на чип M1 более чем компенсирует это.
Вот что говорит Apple:
"Rosetta - это процесс перевода, который позволяет пользователям запускать приложения, содержащие инструкции x86-64 на микросхеме Apple», - говорится на странице разработчика. «Rosetta призвана упростить переход на микросхему Apple, давая вам время на создание универсального двоичного кода для вашего приложения. Это не заменяет создание собственной версии вашего приложения."
Каков именно процесс перевода?
"Если исполняемый файл содержит только инструкции Intel, macOS автоматически запускает Rosetta и начинает процесс перевода. По окончании перевода система запускает переведенный исполняемый файл вместо оригинала. Однако процесс перевода требует времени, поэтому пользователи могут заметить, что переведенные приложения иногда запускаются или работают медленнее" - поясняет Apple.
Rosetta также может переводить динамический код или JavaScript на лету.
Возможно ли запустить с приложением подключаемый модуль x86?
При использовании Mac M1 вы обнаружите, что он всегда будет предпочитать запускать инструкции arm64 на микросхеме Apple. Тем не менее, иногда приложение будет содержать как инструкции arm, так и инструкции X86, и в этом случае пользователь может перезапустить приложение, используя перевод Rosetta из окна Get Info приложения в Finder. Выберите приложение, нажмите Command-I и установите флажок «Открыть с помощью Rosetta».
Это необходимо только в том случае, если вам нужно запустить старый подключаемый модуль в приложении, которое изначально работает на M1.
Кто поддерживает Rosetta 2?
Каждое приложение Apple и все его профессиональные приложения уже изначально поддерживают чип M1. Разработчики также создают универсальные приложения, которые будут работать на компьютерах Mac с процессором Intel и M1. Приложения, которые еще не доступны в исходной или универсальной форме, могут нуждаться в небольшом обновлении, чтобы включить поддержку Rosetta 2, но тогда они будут работать отлично.
Ключевые приложения, такие как Word, уже работают на M1, и Adobe обещает в начале следующего года родную версию Photoshop для M1, а Lightroom появится «в ближайшее время». Конечно, вы также можете запускать приложения iOS на чипе M1, если разработчики позволят.
Rosetta 2 не может портировать все на свете
Rosetta не может транслировать расширения ядра или приложения виртуальных машин, которые виртуализируют компьютерные платформы x86_64. Разработчики должны знать, что Rosetta также не может переводить векторные инструкции AVX, AVX2 и AVX512.
Немного истории
Apple и раньше использовала имя Rosetta. Когда он переводил Mac с процессоров PowerPC на чипы Intel, он использовал что-то с тем же названием для выполнения той же функции - позволяя приложениям PowerPC работать на чипах Intel.
Хотя название и цель остались прежними, существует большая разница между этой формой Rosetta и версией, которую мы используем сегодня, потому что Apple разработала целевой процессор, а это значит, что при разработке M1 учитывались потребности Rosetta.