Двоичный интерфейс приложений

Материал из Википедии — свободной энциклопедии
(перенаправлено с «ABI»)
Перейти к: навигация, поиск

Двоичный (бинарный) интерфейс приложений (англ. application binary interface, ABI) — набор соглашений между программами, библиотеками и операционной системой, обеспечивающих взаимодействие этих компонентов на низком уровне на данной платформе.

Двоичный интерфейс приложений регламентирует:

Некоторые ABI описывают:

ABI отличается от API. API описывает функционал, предоставляемый библиотеками:

  • список функций;
  • аргументы функций, возвращаемые значения, поднимаемые исключения;
  • поведение функций.

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

Бинарный интерфейс встраиваемых приложений (англ. embedded application binary interface, EABI) — набор соглашений для использования во встраиваемом программном обеспечении, описывающий:

  • форматы файлов;
  • типы данных;
  • способы использования регистров;
  • организацию стека;
  • способы передачи параметров функциям.

Если объектный файл был создан компилятором, поддерживающим EABI, становится возможной компоновка этого объектного файла любым компоновщиком, поддерживающим тот же EABI.

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

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

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