Binární (binární) aplikační rozhraní ( anglicky a pplication binary interface , ABI ) je soubor dohod o přístupu aplikací k operačnímu systému a dalším nízkoúrovňovým službám, určený pro přenositelnost spustitelného kódu mezi stroji, které mají kompatibilní ABI [ 1 ] . Na rozdíl od API , které reguluje kompatibilitu na úrovni zdrojového kódu [2] , lze ABI chápat jako sadu pravidel, které umožňují linkeru kombinovat zkompilované moduly komponent bez překompilování celého kódu, a přitom stále definovat binární rozhraní [3 ] .
Binární rozhraní aplikace reguluje [2] [3] :
Aplikační binární rozhraní popisuje funkčnost poskytovanou jádrem OS a architekturou instrukční sady (žádné privilegované příkazy) [5] . Pokud je programové rozhraní aplikací různých platforem stejné, lze kód pro tyto platformy zkompilovat beze změn. Dokud jsou rozhraní API i ABI pro různé platformy stejné, lze binární soubory přenést na tyto platformy bez úprav. Pokud se rozhraní API nebo ABI platforem liší, je třeba kód změnit a znovu zkompilovat. API neposkytuje runtime kompatibilitu – to je úkolem binárního rozhraní.
Embedded Application Binary Interface ( anglicky embedded a pplication binary inerface , EABI ) je soubor konvencí pro použití ve vestavěném softwaru , který popisuje [6] :
Pokud byl objektový soubor vygenerován kompilátorem podporujícím EABI , je možné , aby byl tento objektový soubor propojen libovolným linkerem , který podporuje stejné EABI.
Hlavní rozdíl mezi EABI a ABI v operačním systému pro obecné účely spočívá v tom, že v kódu aplikace jsou povoleny privilegované příkazy a dynamické propojení ( linking ) není vyžadováno (a někdy je zcela zakázáno), a také, aby se šetřila paměť, používá se kompaktní uspořádání zásobníku.