Interested Article - Двоичный интерфейс приложений
- 2020-02-12
- 1
Двоичный (бинарный) интерфейс приложений ( англ. a pplication b inary i nterface , ABI ) — набор соглашений для доступа приложения к операционной системе и другим низкоуровневым сервисам, спроектированный для переносимости исполняемого кода между машинами, имеющими совместимые ABI . В отличие от API , который регламентирует совместимость на уровне исходного кода , ABI можно рассматривать как набор правил, позволяющих компоновщику объединять откомпилированные модули компонента без перекомпиляции всего кода, в то же время определяя двоичный интерфейс .
Двоичный интерфейс приложений регламентирует :
- использование регистров процессора ,
- состав и формат системных вызовов и вызовов одного модуля другим;
- формат передачи аргументов и возвращаемого значения при вызове функции.
Двоичный интерфейс приложений описывает функциональность, предоставляемую ядром ОС и архитектурой набора команд (без привилегированных команд) . Если интерфейс программирования приложений разных платформ совпадает, код для этих платформ можно компилировать без изменений. Если для разных платформ совпадают и API, и ABI, исполняемые файлы можно переносить на эти платформы без изменений. Если API или ABI платформ различаются, код требует изменений и повторной компиляции. API не обеспечивает совместимости среды выполнения программы — это задача двоичного интерфейса.
Бинарный интерфейс встраиваемых приложений ( англ. e mbedded a pplication b inary i nterface , EABI ) — набор соглашений для использования во встраиваемом программном обеспечении , описывающий :
- форматы файлов ;
- типы данных ;
- способы использования регистров ;
- организацию стека ;
- соглашение о вызове функций .
Если объектный файл был создан компилятором , поддерживающим EABI, становится возможной компоновка этого объектного файла любым компоновщиком, поддерживающим тот же EABI.
Основное отличие EABI от ABI в ОС общего назначения заключается в том, что в коде приложения допускаются привилегированные команды, а динамическое связывание ( компоновка ) не требуется (а иногда и полностью запрещена), а также, в целях экономии памяти, используется более компактная организация стека.
Примечания
- Encyclopedia Of Information Technology. — Atlantic Publishers & Distributors (P) Limited, 2007. — P. 4. — ISBN 9788126907526 .
- ↑ .
- ↑ .
- Marinescu D.C. Cloud Computing: Theory and Practice. — Elsevier Science, 2013. — P. 134—135. — ISBN 9780124046412 .
- Marinescu, D.C. Cloud Computing: Theory and Practice. — Elsevier Science, 2013. — P. 134. — ISBN 9780124046412 .
- .
Литература
- Vaduva, A. Learning Embedded Linux Using the Yocto Project. — Packt Publishing, 2015. — P. 24—25. — 334 p. — ISBN 9781784395193 .
- David A. Patterson; John L. Hennessy. Computer Organization and Design, 3th Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design): Computer Organization and Design, 3th Edition. — Elsevier/Morgan Kaufmann, 2004. — 621 p. — ISBN 9781558606043 .
- Walls, C. Embedded Software: The Works. — Elsevier Science, 2012. — P. 26—27. — 436 p. — ISBN 9780124159693 .
- Wolfgang Ecker, Wolfgang Müller, Rainer Dömer. Hardware-dependent Software: Principles and Practice. — Springer Netherlands, 2009. — P. 25—26. — 299 p. — ISBN 9781402094361 .
Ссылки
- (англ.) ABI для архитектуры ARM
- 2020-02-12
- 1