Универсальный двоичный файл
Переход на Mac Процессоры Intel |
---|
Универсальный двоичный формат — это формат исполняемых файлов которые изначально запускаются на PowerPC или Intel или IA-32 или Intel , ARM64 64 компьютерах Macintosh . Формат зародился на NeXTStep как « двоичные файлы с несколькими архитектурами », и эта концепция более широко известна как « толстый двоичный файл» , как это видно на Power Macintosh .
С выпуском Mac OS X Snow Leopard и до этого, с момента перехода на 64-битную архитектуру в целом, некоторые издатели программного обеспечения, такие как Mozilla, [ 1 ] мы использовали термин «универсальный» для обозначения полного двоичного файла, который включает сборки как для i386 (32-разрядной системы Intel), так и для систем x86_64. Тот же механизм, который используется для выбора между сборками приложения PowerPC или Intel, также используется для выбора между 32-разрядными или 64-разрядными сборками архитектур PowerPC или Intel.
Apple, однако, продолжала требовать встроенной совместимости как с PowerPC, так и с Intel, чтобы предоставить сторонним издателям программного обеспечения разрешение на использование товарных знаков Apple, связанных с универсальными двоичными файлами. [ 2 ] Apple не уточняет, должны ли такие сторонние издатели программного обеспечения включать (или должны) отдельные сборки для всех архитектур.
Универсальные двоичные файлы были представлены в Mac OS на Всемирной конференции разработчиков Apple в 2005 году как средство облегчения перехода от существующей архитектуры PowerPC к системам на базе процессоров Intel, поставки которых начались в 2006 году. Универсальные двоичные файлы обычно включают PowerPC и x86 версии . скомпилированное приложение. Операционная система обнаруживает универсальный двоичный файл по его заголовку и выполняет соответствующий раздел для используемой архитектуры. Это позволяет приложению работать на любой поддерживаемой архитектуре без негативного влияния на производительность, за исключением увеличения объема памяти, занимаемого более крупным двоичным файлом.
Начиная с Mac OS X Snow Leopard поддерживаются только компьютеры Mac на базе Intel, поэтому программное обеспечение, которое конкретно зависит от возможностей, присутствующих только в Mac OS X 10.6 или новее, будет работать только на компьютерах Mac на базе Intel и, следовательно, не требует бинарных файлов Intel/PPC. . Кроме того, начиная с OS X Lion , поддерживаются только 64-разрядные компьютеры Intel Mac, поэтому программное обеспечение, которое конкретно зависит от новых функций OS X 10.7 или новее, будет работать только на 64-разрядных процессорах и, следовательно, не требует 32-разрядных/64-разрядных процессоров. немного толстые двоичные файлы. [ 3 ] [ 4 ] Бинарные файлы в формате Fat будут необходимы только для программного обеспечения, которое разработано с учетом обратной совместимости со старыми версиями Mac OS X, работающими на старом оборудовании.
Новый двоичный формат Universal 2 был представлен на Всемирной конференции разработчиков 2020 года. [ 5 ] Universal 2 позволяет приложениям запускаться как на Intel x86-64 с процессором ARM64 , так и на базе компьютерах Macintosh , что позволяет перейти на процессоры Apple .
Мотивация
[ редактировать ]Есть два общих альтернативных решения. Первый — просто предоставить два отдельных двоичных файла: один скомпилирован для архитектуры x86, а другой — для архитектуры PowerPC. Однако это может сбить с толку пользователей программного обеспечения, не знакомых с разницей между ними, хотя путаницу можно устранить путем улучшения документации или использования гибридных компакт-дисков . Другая альтернатива — полагаться на эмуляцию одной архитектуры системой, использующей другую архитектуру. Этот подход приводит к снижению производительности и обычно считается временным решением, которое будет использоваться только до тех пор, пока не станут доступны универсальные двоичные файлы или специально скомпилированные двоичные файлы, как в случае с Rosetta .
Универсальные двоичные файлы больше, чем двоичные файлы для одной платформы, поскольку необходимо хранить несколько копий скомпилированного кода. Однако, поскольку некоторые неисполняемые ресурсы совместно используются двумя архитектурами, размер результирующего универсального двоичного файла может быть и обычно меньше, чем совокупные размеры двух отдельных двоичных файлов. Им также не требуется дополнительная оперативная память , поскольку для выполнения загружается только одна из этих двух копий.
История
[ редактировать ]Концепция универсального двоичного файла возникла из « двоичных файлов с несколькими архитектурами » в NeXTSTEP , основной архитектурной основе Mac OS X. NeXTSTEP поддерживает универсальные двоичные файлы, поэтому один исполняемый образ может работать на нескольких архитектурах, включая Motorola от m68k , Intel от x86 , Microsystems SPARC от Sun и Hewlett-Packard от PA-RISC . NeXTSTEP и macOS используют архив Mach-O в качестве двоичного формата, лежащего в основе универсального двоичного файла.
Apple ранее использовала подобную технику при переходе с процессоров 68k на PowerPC в середине 1990-х годов. Эти двухплатформенные исполняемые файлы называются «толстыми» двоичными файлами из-за большего размера их файлов.
2.1 от Apple Xcode поддерживает создание этих файлов — новая функция в этом выпуске. Простое приложение, разработанное с учетом независимости от процессора, может потребовать очень небольшого количества изменений для компиляции в виде универсального двоичного файла, но сложное приложение, разработанное с учетом преимуществ особенностей архитектуры, может потребовать существенной модификации. Приложения, изначально созданные с использованием других инструментов разработки, могут потребовать дополнительных модификаций. Эти причины были названы задержкой между появлением компьютеров Macintosh на базе Intel и доступностью сторонних приложений в универсальном двоичном формате. Поставка Apple компьютеров на базе процессоров Intel на несколько месяцев раньше объявленного ранее графика является еще одним фактором этого разрыва.
2.4 от Apple Xcode развивает концепцию универсальных двоичных файлов еще дальше, позволяя создавать двоичные файлы с четырьмя архитектурами (32- и 64-битные для Intel и PowerPC), что позволяет одному исполняемому файлу в полной мере использовать возможности процессора любого процессора. Mac OS X. Машина
Универсальные приложения
[ редактировать ]Многие разработчики программного обеспечения предоставляют универсальные двоичные обновления для своих продуктов после WWDC 2005 года. По состоянию на декабрь 2008 года на веб-сайте Apple было размещено более 7500 универсальных приложений. [ 6 ]
16 апреля 2007 года компания Adobe Systems объявила о выпуске Adobe Creative Suite 3 , первой версии пакета приложений в формате Universal Binary. [ 7 ]
С 2006 по 2010 год многие приложения Mac OS X были портированы в формат Universal Binary, включая QuarkXPress , собственную Final Cut Studio от Apple , Adobe Creative Suite , Microsoft Office 2008 и Shockwave Player версии 11 — после этого большинство из них стали доступны только для Intel. приложения. на лету Неуниверсальные 32-битные программы PowerPC будут работать на компьютерах Intel Mac под управлением Mac OS X 10.4, 10.5 и 10.6 (в большинстве случаев), но с неоптимальной производительностью, поскольку они должны транслироваться Rosetta ; они не будут работать в Mac OS X 10.7 Lion и более поздних версиях, поскольку Rosetta больше не является частью ОС.
iOS
[ редактировать ]Apple по умолчанию использовала тот же двоичный формат, что и универсальные двоичные файлы для приложений iOS , во многих случаях архитектурного сосуществования: примерно в 2010 году во время перехода Armv6-armv7-armv7s и примерно в 2016 году во время перехода Armv7-arm64. App Store автоматически сокращает количество двоичных файлов. Для этой практики не было получено никаких торговых наименований, поскольку это забота только разработчика. [ 8 ]
Универсал 2
[ редактировать ]Переход на Mac Яблочный кремний |
---|
22 июня 2020 года Apple объявила о двухлетнем постоянном переходе с Intel x86-64 процессоров ARM64 на базе на процессоры Apple , начиная с macOS Big Sur в конце 2020 года. [ 9 ] Чтобы облегчить этот переход, был представлен новый двоичный файл Universal 2, позволяющий запускать приложения либо на процессорах на базе x86-64 , либо на процессорах на базе ARM64. [ 5 ]
Инструменты
[ редактировать ]Основным инструментом для обработки (создания или разделения) универсальных двоичных файлов является lipo
команда найдена в Xcode . file
Команда в macOS и некоторых других Unix-подобных системах может идентифицировать универсальные двоичные файлы Mach-O и сообщать о поддержке архитектуры. [ 10 ] Snow Leopard предоставляет Профилировщик системы эту информацию на вкладке «Приложения» .
См. также
[ редактировать ]- Архитектура Apple – Intel
- Переход Mac на процессоры Intel
- Переход Mac на Apple Silicon
- Жирный двоичный файл
- Розетка (программное обеспечение)
- стройнее
Ссылки
[ редактировать ]- ^ «Firefox 4 для Mac OS X: под капотом» . 10 ноября 2010 г. Проверено 3 марта 2017 г.
- ^ «Универсальный логотип Mac OS X: Рекомендации для лицензий на универсальный логотип Mac OS X» (PDF) . Apple Inc., июнь 2007 г. Проверено 18 октября 2013 г.
- ^ «Mac OS X: 64-битное ядро, часто задаваемые вопросы» . Apple Inc., 4 октября 2012 г. Проверено 18 октября 2013 г.
- ^ «Работает ли Mac OS X 10.7 «Lion» на компьютерах Mac с 32-битным EFI? Как производительность Mac OS X 10.7 «Lion» сравнивается с Mac OS X 10.6 «Snow Leopard» в «реальных» тестах? @ EveryMac.com» . Everymac.com . Кайл Медиа . Проверено 6 октября 2017 г.
- ^ Перейти обратно: а б Аксон, Сэмюэл (22 июня 2020 г.). «Это дорожная карта Apple по выводу первых компьютеров Mac от Intel» . Арс Техника . Проверено 23 июня 2020 г.
- ^ «Руководство по продуктам Macintosh: универсальные приложения» . Компьютер Apple . Проверено 22 декабря 2008 г.
- ^ «Adobe поставляет Creative Suite 3» . Системы Adobe . 16 апреля 2007 года. Архивировано из оригинала 8 июля 2012 года . Проверено 18 октября 2013 г.
- ^ «lipo — жировые бинарники iOS и похудение» . Переполнение стека .
- ^ Амадео, Рон (22 июня 2020 г.). «Apple анонсирует macOS 11 «Big Sur» с упором на дизайн» . Арс Техника . Проверено 23 июня 2020 г.
- ^ Стани (6 сентября 2005 г.). «Mac OS X: удаление жира из файлов Mach-O» . theconsultant.net . Проверено 18 октября 2013 г.
Внешние ссылки
[ редактировать ]- Apple Ресурсный центр перехода разработчиков
- Apple по двоичному программированию Универсальные рекомендации
- Apple Universal Binary Введение