Двоичный (бинарный) интерфейс приложений (англ. application binary interface, ABI) — набор соглашений для доступа приложения к операционной системе и другим низкоуровневым сервисам, спроектированный для переносимости исполняемого кода между машинами, имеющими совместимые ABI[1]. В отличие от API, который регламентирует совместимость на уровне исходного кода[2], ABI можно рассматривать как набор правил, позволяющих компоновщику объединять откомпилированные модули компонента без перекомпиляции всего кода, в то же время определяя двоичный интерфейс[3].
Двоичный интерфейс приложений регламентирует[2][3]:
Двоичный интерфейс приложений отличается от интерфейса программирования приложений (API). API описывает функциональность, предоставляемую библиотеками: список функций, аргументы функций, возвращаемые значения, возможные исключения, поведение функций.
Двоичный интерфейс приложений описывает функциональность, предоставляемую ядром ОС и архитектурой набора команд (без привилегированных команд)[5]. Если интерфейс программирования приложений разных платформ совпадают, код для этих платформ можно компилировать без изменений. Если для разных платформ совпадают и API, и ABI, исполняемые файлы можно переносить на эти платформы без изменений. Если API или ABI платформ отличаются, код требует изменений и повторной компиляции. API не обеспечивает совместимость среды выполнения программы — это задача двоичного интерфейса.
Бинарный интерфейс встраиваемых приложений (англ. embedded application binary interface, EABI) — набор соглашений для использования во встраиваемом программном обеспечении, описывающий[6]:
Если объектный файл был создан компилятором, поддерживающим EABI, становится возможной компоновка этого объектного файла любым компоновщиком, поддерживающим тот же EABI.
Основное отличие EABI от ABI в ОС общего назначения заключается в том, что в коде приложения допускаются привилегированные команды, а динамическое связывание (компоновка) не требуется (а иногда и полностью запрещена), а также, в целях экономии памяти, используется более компактная организация стека.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .