Универсальный двоичный файл - Universal binary

Логотип, используемый для обозначения универсального приложения

В универсальный двоичный формат, в яблоко язык, формат для исполняемые файлы которые работают изначально на любом PowerPC или же Intel -изготовленный IA-32 или же Intel 64 -основан Macintosh компьютеры. Формат возник на Следующий шаг в качестве "Бинарные файлы с несколькими архитектурами ", и эта концепция более известна как толстый двоичный файл, как видно на Power Macintosh.

С выходом Mac OS X Снежный барс, а до этого с момента перехода на 64-битный архитектуры в целом, некоторые издатели программного обеспечения, такие как Mozilla[1] использовали термин «универсальный» для обозначения толстого двоичного файла, который включает сборки для систем i386 (32-разрядная Intel) и x86_64. Тот же механизм, который используется для выбора между сборками приложения PowerPC или Intel, также используется для выбора между 32-разрядными или 64-разрядными сборками архитектур PowerPC или Intel.

Apple, однако, продолжала требовать встроенной совместимости как с PowerPC, так и с Intel, чтобы предоставить сторонним издателям программного обеспечения разрешение на использование товарных знаков Apple, связанных с универсальными двоичными файлами.[2] Apple не указывает, должны ли такие сторонние издатели программного обеспечения (или должны) объединять отдельные сборки для всех архитектур.

Универсальные двоичные файлы были представлены в Mac OS в 2005 г. Всемирная конференция разработчиков Apple как средство облегчения перехода от существующей архитектуры 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] Полные двоичные файлы необходимы только для программного обеспечения, которое Обратная совместимость со старыми версиями Mac OS X работает на старом оборудовании.

Новый Универсальный 2 двоичный формат был представлен на Всемирной конференции разработчиков 2020 года.[5] Universal 2 позволяет приложениям работать на обоих Intel x86-64 на основе и ARM64 -основан Macintosh компьютеров, чтобы переход на кремний Apple.

Мотивация

Есть два общих альтернативных решения. Первый - просто предоставить два отдельных двоичных файла, один скомпилирован для архитектуры x86, а другой - для архитектуры PowerPC. Однако это может сбивать с толку пользователей программного обеспечения, незнакомых с разницей между ними, хотя путаницу можно устранить с помощью улучшенной документации или использования гибридные компакт-диски. Другой вариант - положиться на подражание одной архитектуры системой, на которой запущена другая архитектура. Такой подход приводит к снижению производительности и обычно рассматривается как временное решение, которое следует использовать только до тех пор, пока не будут доступны универсальные двоичные файлы или специально скомпилированные двоичные файлы, как с Розетта.

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

История

Концепция универсального двоичного кода возникла с "Бинарные файлы с несколькими архитектурами " в Следующий шаг, главный архитектурный фундамент Mac OS X. NeXTSTEP поддерживает универсальные двоичные файлы, поэтому один исполняемый образ может работать на нескольких архитектурах, включая Motorola с m68k, Intel с x86, Sun Microsystems с SPARC, и Hewlett Packard с PA-RISC. Использование NeXTSTEP и macOS Мачо archive как двоичный формат, лежащий в основе универсального двоичного файла.

Apple ранее использовала подобную технику при переходе от 68 тыс. процессоров для PowerPC в середине 1990-х. Эти двухплатформенные исполняемые файлы называются толстые двоичные файлы, ссылаясь на их больший размер файла.

Apple Xcode 2.1 поддерживает создание этих файлов, новую функцию в этом выпуске. Простое приложение, разработанное с независимость от процессора в виду может потребоваться очень небольшое количество изменений для компиляции в качестве универсального двоичного файла, но сложное приложение, разработанное для использования преимуществ специфичных для архитектуры функций, может потребовать существенной модификации. Приложения, изначально созданные с использованием других инструментов разработки, могут потребовать дополнительных изменений. Эти причины объясняются задержкой между выпуском компьютеров Macintosh на базе Intel и появлением сторонних приложений в универсальном двоичном формате. Поставки Apple компьютеров на базе Intel на несколько месяцев раньше объявленного ранее графика - еще один фактор в этом пробеле.

Apple Xcode 2.4 развивает концепцию универсальных двоичных файлов еще дальше, позволяя создавать двоичные файлы с четырьмя архитектурами (32- и 64-разрядные как для Intel, так и для PowerPC), что позволяет одному исполняемому файлу в полной мере использовать возможности ЦП любого Mac OS X машина.

Универсальные приложения

Многие разработчики программного обеспечения предоставляют универсальные двоичные обновления для своих продуктов после WWDC 2005 года. По состоянию на декабрь 2008 г. на веб-сайте Apple было представлено более 7 500 универсальных приложений.[6]

16 апреля 2007 г. Adobe Systems объявил о выпуске Adobe Creative Suite 3, первая версия пакета приложений в формате Universal Binary.[7]

С 2006 по 2010 год многие приложения Mac OS X были перенесены в универсальный двоичный формат, включая QuarkXPress, Собственный Final Cut Studio, Adobe Creative Suite, Microsoft Office 2008, и Shockwave Player с версией 11 - после этого времени большинство приложений делалось только для Intel. Неуниверсальные 32-разрядные программы PowerPC будут работать на компьютерах Intel Mac под управлением Mac OS X 10.4, 10.5 и 10.6 (в большинстве случаев), но с неоптимальной производительностью, поскольку они должны переводиться на лету с помощью Розетта; они не будут работать в Mac OS X 10.7 Lion и более поздних версиях, поскольку Rosetta больше не является частью ОС.

iOS

Apple использовала тот же двоичный формат, что и универсальные двоичные файлы для iOS приложения по умолчанию в нескольких случаях архитектурного сосуществования: примерно в 2010 году во время перехода armv6-armv7-armv7s и примерно в 2016 году во время перехода armv7-arm64. В Магазин приложений автоматически прореживает двоичные файлы. Для этой практики не было получено никаких торговых наименований, так как это забота только разработчика.[8]

Универсальный 2

22 июня 2020 года Apple объявила о двухлетнем постоянном переходе с Intel x86-64 процессоры на базе ARM64 -основан Яблочный кремний начиная с macOS Big Sur в конце 2020 года.[9] Чтобы помочь в этом переходе, был представлен новый двоичный файл Universal 2, позволяющий запускать приложения на любом x86-64 -процессоры или процессоры на базе ARM64.[5]

Инструменты

Основным инструментом для работы (создания или разделения) универсальных двоичных файлов является липо команда найдена в Xcode. В файл команда на macOS и несколько других Unix-подобный системы могут идентифицировать универсальные двоичные файлы Mach-O и поддерживать архитектуру отчетов.[10] Снежный барс с Системный профайлер предоставляет эту информацию о Приложения таб.

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

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

  1. ^ «Firefox 4 для Mac OS X: под капотом». 10 ноября 2010 г.. Получено 3 марта, 2017.
  2. ^ «Универсальный логотип Mac OS X: рекомендации по лицензиям на универсальный логотип Mac OS X» (PDF). Apple Inc., июнь 2007 г.. Получено 18 октября, 2013.
  3. ^ «Mac OS X: часто задаваемые вопросы о 64-битном ядре». Apple Inc. 4 октября 2012 г.. Получено 18 октября, 2013.
  4. ^ «Работает ли 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.
  5. ^ а б Аксон, Самуил (22 июня 2020 г.). «Это план Apple по отказу от Intel первых компьютеров Mac». Ars Technica. Получено 23 июня, 2020.
  6. ^ «Руководство по продуктам Macintosh: универсальные приложения». Компьютер Apple. Получено 22 декабря, 2008.
  7. ^ «Adobe Ships Creative Suite 3». Adobe Systems. 16 апреля 2007 г. Архивировано с оригинал 8 июля 2012 г.. Получено 18 октября, 2013.
  8. ^ «липо - жировые двоичные файлы iOS и прореживание». Переполнение стека.
  9. ^ Амадео, Рон (22 июня 2020 г.). «Apple анонсирует macOS 11, Big Sur, с упором на дизайн». Ars Technica. Получено 23 июня, 2020.
  10. ^ stany (6 сентября 2005 г.). «Mac OS X: удаление жира из файлов с расширением Mach-O». theconsultant.net. Получено 18 октября, 2013.

внешняя ссылка