Двоичный (бинарный) интерфейс приложений (англ. application binary interface, ABI) — набор соглашений для доступа приложения к операционной системе и другим низкоуровневым сервисам, спроектированный для переносимости исполняемого кода между машинами, имеющими совместимые ABI[1]. В отличие от API, который регламентирует совместимость на уровне исходного текста, ABI можно рассматривать как набор правил, позволяющих компоновщику объединять откомпилированные модули компонента без перекомпиляции всего исходного текста, в то же время определяя двоичный интерфейс[2].

Уровни и интерфейсы между ними. API, ABI и архитектура набора команд (ISA) [3]

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

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

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

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

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

Примечания

править
  1. Encyclopedia Of Information Technology. — Atlantic Publishers & Distributors (P) Limited, 2007. — P. 4. — ISBN 9788126907526.
  2. 1 2 Vaduva, 2015.
  3. Marinescu D.C. Cloud Computing: Theory and Practice. — Elsevier Science, 2013. — P. 134—135. — ISBN 9780124046412.
  4. Ecker, Müller, Dömer, 2009.
  5. Marinescu, D.C. Cloud Computing: Theory and Practice. — Elsevier Science, 2013. — P. 134. — ISBN 9780124046412.
  6. Walls, 2012.

Литература

править

Ссылки

править

📚 Artikel Terkait di Wikipedia

GPGPU

GPGPU (также GPGP, GP²U, англ. General-purpose computing on graphics processing units, неспециализированные вычисления на графических процессорах) — техника

Интернет вещей

становится движущей силой парадигмы «туманных вычислений» (англ. fog computing), распространяющей принципы облачных вычислений от центров обработки данных

CompactPCI Serial

периферийных модулей — компании MEN Mikro Elektronik, Fastwel, EKF, Emerson Embedded Computing, ADLINK. CompactPCI CompactPCI PlusIO OpenVPX PICMG 2.0 Архивировано

TianoCore EDK II

net. EDK II Project . tianocore (18 мая 2023). Barry, Peter. Modern embedded computing : designing connected, pervasive, media-rich systems. — Amsterdam :

Система реального времени

8. DSP in Embedded Systems // Embedded Software. — Newnes, 2007. — 792 p. — ISBN 978-0-7506-8583-2. Jack Ganssle and Michael Barr. Embedded systems dictionary

OpenVPX

Architectures for High-Performance Embedded Computing. // Thirteenth Annual Workshop on High Performance Embedded Computing (HPEC2009). — 22-24 September,

OpenWrt

OpenWrt вышли из проекта и создали собственный форк LEDE (англ. Linux Embedded Development Environment). Это решение было ими принято из-за нерешённых

Power BI

классу self-service BI, и BI с резидентным вычислением (англ. in-memory computing). Является частью единой платформы Microsoft Power Platform . Ключевой