Interfaz binaria de aplicaciones

Una ABI determina detalles como la forma de llamar a las funciones, en qué formato binario se debería pasar la información de un componente de programa al siguiente, o al sistema operativo en el caso de una llamada al sistema.Las ABIs cubren aspectos como: Un ABI completo, como el Estándar de Compatibilidad Binaria de Intel (iBCS),[1]​ permite a un programa de un sistema operativo soportar dicho ABI para ejecutarse sin modificaciones en cualquier otro sistema al que se le provean de las librerías compartidas necesarias y tenga los mismos prerrequisitos.Las diferencias principales entre EABI y ABI para sistemas operativos de propósito general son que se permiten instrucciones privilegiadas en el código de la aplicación sin necesidad de enlazado dinámico y se utiliza un marco de pila más compacto para ahorrar memoria.[4]​ La elección de EABi puede afectar al rendimiento.[5]​[6]​ Ejemplos de EABIs ampliamente utilizadas: PowerPC,[7]​ ARM EABI2[8]​ y MIPS EABI.
Compilando los sistemas operativos y software comercial conforme a Linux Standard Base , resultará en una Interfaz Binaria de Aplicación (ABI) y por ello en portabilidad binaria.
Linux kernel y GNU C Library definen el Linux API . Tras la compilación, los binarios ofrecen una ABI; manteniendo esta ABI estable a lo largo del tiempo es importante para el vendedor independiente de software .