Binäärinen (binaarinen) sovellusrajapinta ( englanniksi a pplication binary interface , ABI ) on joukko sopimuksia sovellusten pääsystä käyttöjärjestelmään ja muihin matalan tason palveluihin, jotka on suunniteltu suoritettavan koodin siirrettäviksi koneiden välillä, joissa on yhteensopivat ABI:t [ 1 ] . Toisin kuin API , joka säätelee yhteensopivuutta lähdekooditasolla [2] , ABI:ta voidaan pitää säännöstönä, jonka avulla linkki voiyhdistää käännetyt komponenttimoduulit kääntämättä koko koodia uudelleen, mutta silti määrittää binaarirajapinnan [3] .
Sovelluksen binaariliitäntä säätelee [2] [3] :
Sovelluksen binaarirajapinta kuvaa käyttöjärjestelmän ytimen ja käskysarjaarkkitehtuurin tarjoamia toimintoja (ei etuoikeutettuja komentoja) [5] . Jos eri alustojen sovellusten ohjelmointirajapinta on sama, voidaan näiden alustojen koodi kääntää ilman muutoksia. Niin kauan kuin API ja ABI ovat samat eri alustoille, binaarit voidaan siirtää näille alustoille ilman muutoksia. Jos alustojen API:t tai ABI:t eroavat toisistaan, koodi on muutettava ja käännettävä uudelleen. API ei tarjoa ajonaikaista yhteensopivuutta - tämä on binaarirajapinnan tehtävä.
Embedded Application Binary Interface ( eng. embedded a sovell inerface , EABI ) on joukko sopimuksia käytettäväksi sulautetuissa ohjelmistoissa , jotka kuvaavat [6] :
Jos objektitiedoston on luonut EABI:ta tukeva kääntäjä , on mahdollista , että objektitiedosto linkitetään millä tahansa samaa EABI:ta tukevalla linkittäjällä .
Suurin ero EABI :n ja ABI :n välillä yleiskäyttöisessä käyttöjärjestelmässä on se, että etuoikeutetut komennot ovat sallittuja sovelluskoodissa, ja dynaamista linkittämistä ( linking ) ei vaadita (ja joskus kokonaan kielletty), ja myös muistin säästämiseksi käytetään kompaktia pinoorganisaatiota.