- Двоичный интерфейс приложений
-
Двоичный (бинарный) интерфейс приложений (англ. Application Binary Interface, англ. ABI) — набор соглашений между программами, библиотеками и операционной системой, обеспечивающих взаимодействие этих компонентов на низком уровне на данной платформе.
Двоичный интерфейс приложений регламентирует размер и выравнивание основных типов данных, формат передачи аргументов и возвращаемого значения при вызове функции, состав и формат системных вызовов, форматы исполняемых файлов, файлов библиотек, объектных файлов и т. п. Некоторые ABI описывают преобразование имён функций в C++, поддержку исключений.
Важно понимать разницу между ABI и API (программным интерфейсом приложений). API определяет интерфейс между исходным кодом создаваемой программы и библиотеками, обеспечивая возможность компиляции этого кода на любой платформе. В свою очередь, ABI позволяет скомпилированному объектному коду функционировать без изменений на любой платформе, где используется та же конфигурация ABI. API не обеспечивает совместимость времени исполнения программы — это задача ABI.
Бинарный интерфейс встроенных приложений (англ. Embedded Application Binary Interface, англ. EABI) — набор соглашений для форматов файлов, типов данных, использования регистров, организации стека, и передачи параметров функций для использования во встроенном программном обеспечении.Компиляторы, которые поддерживают EABI, создают объектный код, совместимый с кодом, генерируемым другими компиляторами, что позволяет разработчикам связывать библиотеки, созданные одним компилятором, с объектным кодом, созданным другим компилятором. Разработчики, пишущие свой код на ассемблере также могут использовать EABI для взаимодействия с кодом ассемблера, сгенерированным совместимым компилятором.
Основные отличия EABI от ABI в операционных системах общего назначения заключается в том, что в коде приложения допускаются привилегированные команды, а динамическое связывание (линковка) не требуется (а иногда и полностью запрещена), а также, в целях экономии памяти, используется более компактная организация стека.
См. также
- Соглашение вызова
- Интерфейс прикладного программирования (API)
- Программирование
- Системный вызов
- SWIG — свободный инструмент для связывания программ и библиотек
Ссылки
- Application Binary Interface (ABI) for the ARM Architecture - спецификация ABI для архитектуры ARM
Категории:- Интерфейсы
- API
- Операционная система
Wikimedia Foundation. 2010.