~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 147576BD7D85D1C932F9390762A1D990__1708294920 ✰
Заголовок документа оригинал.:
✰ Application binary interface - Wikipedia ✰
Заголовок документа перевод.:
✰ Бинарный интерфейс приложения — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Application_binary_interface ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/14/90/147576bd7d85d1c932f9390762a1d990.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/14/90/147576bd7d85d1c932f9390762a1d990__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 12:51:41 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 19 February 2024, at 01:22 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Бинарный интерфейс приложения — Википедия Jump to content

Бинарный интерфейс приложения

Из Википедии, бесплатной энциклопедии

Высокоуровневое сравнение API и ABI внутри ядра и между ядром и пользовательским пространством.
Ядро Linux и библиотека GNU C определяют API Linux . После компиляции двоичные файлы предлагают ABI. важно поддерживать стабильность этого ABI в течение длительного времени Для независимых поставщиков программного обеспечения .

В компьютерном программном обеспечении ( двоичный интерфейс приложения ABI ) — это интерфейс между двумя двоичными программными модулями. Часто один из этих модулей представляет собой библиотеку или средство операционной системы , а другой — программу, запускаемую пользователем.

ABI определяет, как осуществляется доступ к структурам данных или вычислительным процедурам в машинном коде , который представляет собой низкоуровневый аппаратно-зависимый формат. Напротив, интерфейс прикладного программирования (API) определяет этот доступ в исходном коде , который представляет собой относительно высокоуровневый, аппаратно-независимый, часто удобочитаемый формат. Общим аспектом ABI является соглашение о вызовах , которое определяет, как данные предоставляются в качестве входных данных или считываются как выходные данные вычислительных процедур. Примерами этого являются соглашения о вызовах x86 .

Соблюдение ABI (который может быть официально стандартизирован, а может и не быть) обычно является задачей автора компилятора , операционной системы или библиотеки. Однако программисту приложения, возможно, придется иметь дело непосредственно с ABI при написании программы на нескольких языках программирования или даже при компиляции программы, написанной на одном и том же языке, с помощью разных компиляторов.

Описание [ править ]

Подробности, охватываемые ABI, включают следующее:

  • Набор инструкций процессора с такими подробностями, как структура файла регистров, организация стека, типы доступа к памяти и т. д.
  • Размеры, макеты и выравнивание основных типов данных , к которым процессор может иметь прямой доступ.
  • Соглашение о вызовах , которое управляет передачей аргументов функций и получением возвращаемых значений; например, он контролирует следующее:
    • Передаются ли все параметры в стеке или некоторые из них передаются в регистрах
    • Какие регистры используются для каких параметров функции
    • Будет ли первый параметр функции, переданный в стек, помещен первым или последним
    • Ответственен ли за очистку стека после вызова функции вызывающий или вызываемый объект.
  • Как приложение должно выполнять системные вызовы операционной системы, и если ABI указывает прямые системные вызовы, а не вызовы процедур для заглушек системных вызовов , номера системных вызовов
  • В случае полной операционной системы ABI используется двоичный формат объектных файлов , программных библиотек и т. д.

Полные ABI [ править ]

Полный ABI, например стандарт Intel Binary Compatibility Standard (iBCS), [1] позволяет программе из одной операционной системы, поддерживающей этот ABI, запускаться без изменений в любой другой такой системе при условии наличия необходимых общих библиотек и выполнения аналогичных предварительных условий.

ABI также могут стандартизировать такие детали, как искажение имен C++ , [2] исключений , распространение [3] и соглашение о вызовах между компиляторами на одной платформе, но не требуют межплатформенной совместимости.

Встроенные ABI [ править ]

Двоичный интерфейс встроенного приложения (EABI) определяет стандартные соглашения для форматов файлов , типов данных, использования регистров, организации кадров стека и передачи функциональных параметров встроенной программы для использования со встроенной операционной системой .

Компиляторы , поддерживающие EABI, создают объектный код , совместимый с кодом, созданным другими такими компиляторами, что позволяет разработчикам связывать библиотеки, созданные с помощью одного компилятора, с объектным кодом, созданным с помощью другого компилятора. Разработчики, пишущие собственный код на языке ассемблера , также могут взаимодействовать со сборкой, созданной совместимым компилятором.

EABI предназначены для оптимизации производительности в рамках ограниченных ресурсов встроенной системы. Таким образом, EABI опускает большинство абстракций, возникающих между ядром и пользовательским кодом в сложных операционных системах. Например, динамического связывания, чтобы обеспечить меньший размер исполняемых файлов и более быструю загрузку, использование фиксированного регистра обеспечивает более компактные стеки и вызовы ядра, а запуск приложения в привилегированном режиме обеспечивает прямой доступ к пользовательским операциям оборудования без косвенного вызова драйвера устройства. можно избежать [4] Выбор EABI может повлиять на производительность. [5] [6]

Широко используемые EABI включают PowerPC , [4] Рука ЕАБИ [7] и MIPS EABI. [8] Конкретные реализации программного обеспечения, такие как библиотека C, могут накладывать дополнительные ограничения для формирования более конкретных ABI; Одним из примеров являются GNU OABI и EABI для ARM, оба из которых являются подмножествами ARM EABI. [9]

См. также [ править ]

Ссылки [ править ]

  1. ^ Стандарт двоичной совместимости Intel (iBCS)
  2. ^ «Итаниум C++ ABI» . (совместим с несколькими архитектурами)
  3. ^ «Itanium C++ ABI: обработка исключений» . (совместим с несколькими архитектурами)
  4. ^ Перейти обратно: а б «Резюме ЕАБИ». Двоичный интерфейс встроенного приложения PowerPC: 32-битная реализация (PDF) (изд. версии 1.0). Freescale Semiconductor, Inc., 1 октября 1995 г., стр. 28–30.
  5. ^ «Debian ARM ускоряется через порт EABI» . Linuxdevices.com. 16 октября 2016 года. Архивировано из оригинала 21 января 2007 года . Проверено 11 октября 2007 г.
  6. ^ Андрес Кальдерон и Нельсон Кастильо (14 марта 2007 г.). «Почему EABI от ARM имеет значение» . Linuxdevices.com. Архивировано из оригинала 31 марта 2007 года . Проверено 11 октября 2007 г.
  7. ^ «ABI для архитектуры руки» . Разработчик.arm.com . Проверено 4 февраля 2020 г.
  8. ^ Эрик Кристофер (11 июня 2003 г.). "Документация mips eabi" . [email protected] (список рассылки) . Проверено 19 июня 2020 г.
  9. ^ «АрмЭабиПорт» . Дебиан Вики . Строго говоря, и старый, и новый ARM ABI являются подмножествами спецификации ARM EABI, но в повседневном использовании термин «EABI» используется для обозначения нового, описанного здесь, а «OABI» или «old-ABI» — для обозначения старого. один.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 147576BD7D85D1C932F9390762A1D990__1708294920
URL1:https://en.wikipedia.org/wiki/Application_binary_interface
Заголовок, (Title) документа по адресу, URL1:
Application binary interface - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)