En software de ordenador, una interfaz binaria de aplicación (ABI) es la interfaz entre dos módulos de programa, uno de los cuales es, a menudo, una librería o sistema operativo, a nivel de lenguaje de máquina. 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.
La adhesión a las ABIs (las cuales pueden o no estar oficialmente estandarizadas) es normalmente trabajo del compilador, sistema operativo o de la librería, pero los programadores de aplicaciones pueden tratar con las ABIs directamente cuando escriben las aplicaciones en una mezcla de lenguajes de programación, utilizando interfaces de funciones foráneas entre ellas.
Las ABIs difieren de las interfaces de programación de aplicaciones (API) en que ambas definen interfaces entre componentes de programa pero las API a nivel de código fuente.
Las ABIs cubren aspectos como:
Un ABI completo, como el Estándar de Compatibilidad Binaria de Intel (iBCS), 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.
Otras ABIs estandarizan detalles como la convención de nombres de funciones en C++,manejo de excepciones, propagación, y convención sobre llamadas entre compiladores de la misma plataforma que no requieren compatibilidad con otras plataformas.
Una interfaz binaria de aplicación embebida (EABI) especifica convenciones estandarizadas para los formatos de archivo, tipos de datos, uso de registros, organización de la pila y paso de parámetros en funciones de una aplicación de un sistema embebido.
Los compiladores que soportan EABI crean código objeto compatible con el código generado por otros compiladores, permitiendo a los desarrolladores enlazar librerías generadas con otros compiladores. Los desarrolladores que escriben su propio código en lenguaje ensamblador pueden usar EABI para interactuar con el ensamblador generado por otro compilador.
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.
La elección de EABi puede afectar al rendimiento. Ejemplos de EABIs ampliamente utilizadas: PowerPC, ARM EABI2 y MIPS EABI.
Escribe un comentario o lo que quieras sobre Interfaz binaria de aplicaciones (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)