Interfața de aplicație binară (binară) ( în engleză a pplication binary interface , ABI ) este un set de acorduri pentru accesul aplicațiilor la sistemul de operare și la alte servicii de nivel scăzut, concepute pentru portabilitatea codului executabil între mașini care au ABI -uri compatibile [ 1 ] . Spre deosebire de API , care reglementează compatibilitatea la nivelul codului sursă [2] , ABI poate fi gândit ca un set de reguli care permit linkerului să combine module componente compilate fără a recompila întregul cod, definind totuși o interfață binară [3] ] .
Interfața binară a aplicației reglează [2] [3] :
Interfața binară a aplicației descrie funcționalitatea oferită de nucleul sistemului de operare și arhitectura setului de instrucțiuni (fără comenzi privilegiate) [5] . Dacă interfața de programare a aplicațiilor diferitelor platforme este aceeași, codul pentru aceste platforme poate fi compilat fără modificări. Atâta timp cât atât API-ul, cât și ABI sunt aceleași pentru platforme diferite, binarele pot fi portate pe acele platforme fără modificări. Dacă API-urile sau ABI-urile platformelor diferă, codul trebuie schimbat și recompilat. API-ul nu oferă compatibilitate cu timpul de rulare - aceasta este sarcina interfeței binare.
Embedded Application Binary Interface ( eng. embedded a pplication binary inerface , EABI ) este un set de convenții pentru utilizare în software încorporat care descrie [6] :
Dacă un fișier obiect a fost generat de un compilator care acceptă EABI , devine posibil ca acel fișier obiect să fie legat de orice linker care acceptă același EABI.
Principala diferență dintre EABI și ABI într-un sistem de operare cu scop general este că comenzile privilegiate sunt permise în codul aplicației, iar conectarea dinamică ( linking ) nu este necesară (și uneori complet interzisă) și, de asemenea, pentru a economisi memorie, un se utilizează organizarea compactă a stivei.