fbpx
Wikipedia

Interfaz binaria de aplicaciones

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.

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.

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.

Descripción

Las ABIs cubren aspectos como:

  • tamaños, disposición y alineamiento de los tipos de datos
  • la convención de llamada, que controla cómo se pasan los argumentos de las funciones y se recuperan los valores devueltos; por ejemplo, si todos los parámetros se pasan a la pila o si algunos parámetros pasan a los registros, qué registros se utilizan para qué parámetros de una función, y qué parámetro pasa primero a la pila, si pasa el primero o el último
  • cómo una aplicación debería realizar llamadas al sistema del sistema operativo y, si la ABI especifica llamadas directas al sistema en vez de llamadas de procedimiento, las direcciones de llamada
  • y en el caso de un ABI de sistema operativo completo, el formato binario de los archivos objeto de las librerías de programa, etc.

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.

Otras ABIs estandarizan detalles como la convención de nombres de funciones en C++,[2]manejo de excepciones, propagación,[3]​ y convención sobre llamadas entre compiladores de la misma plataforma que no requieren compatibilidad con otras plataformas.

EABI

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.[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.[9]

Véase también

Referencias

  1. Intel Binary Compatibility Standard (iBCS)
  2. Itanium C++ ABI (compatible con múltiples arquitecturas)
  3. Itanium C++ ABI: Exception Handling el 12 de diciembre de 2012 en Wayback Machine. (compatible con múltiples arquitecturas)
  4. «EABI Summary». PowerPC Embedded Application Binary Interface: 32-Bit Implementation (Version 1.0 edición). Freescale Semiconductor, Inc. 1 de octubre de 1995. pp. 28-30. 
  5. «Debian ARM accelerates via EABI port». Linuxdevices.com. 19 de enero de 2007. desde el original el 21 de enero de 2007. Consultado el 11 de octubre de 2007. 
  6. Andrés Calderón and Nelson Castillo (14 de marzo de 2007). «Why ARM's EABI matters». Linuxdevices.com. desde el original el 31 de marzo de 2007. Consultado el 11 de octubre de 2007. 
  7. "PowerPC Embedded Processors Application Note" (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  8. «ARM Information Center». Infocenter.arm.com. Consultado el 27 de febrero de 2014. 
  9. . Cygwin.com. 11 de junio de 2003. Archivado desde el original el 30 de marzo de 2013. Consultado el 27 de febrero de 2014. 

Enlaces externos

  • KDE Techbase Policies - Buen compendio de reglas de desarrollo (con algunos ejemplos) para no romper la compatibilidad binaria entre diferentes versiones de tu librería.
  • Mac OS X ABI Function Call Guide
  • Debian ARM EABI port
  • µClib: Motorola 8/16-bit embedded ABI
  • Application Binary Interface (ABI) para la arquitectura ARM
  • Sun Studio 10 Compilers and the AMD64 ABI - Buen sumario y comparación entre algunas ABIs populares
  • "M•CORE Applications Binary Interface Standards Manual" for the Freescale M·CORE processors


  •   Datos: Q721623

interfaz, binaria, aplicaciones, software, ordenador, interfaz, binaria, aplicación, interfaz, entre, módulos, programa, cuales, menudo, librería, sistema, operativo, nivel, lenguaje, máquina, determina, detalles, como, forma, llamar, funciones, qué, formato, . En software de ordenador una interfaz binaria de aplicacion ABI es la interfaz entre dos modulos de programa uno de los cuales es a menudo una libreria o sistema operativo a nivel de lenguaje de maquina Una ABI determina detalles como la forma de llamar a las funciones en que formato binario se deberia pasar la informacion de un componente de programa al siguiente o al sistema operativo en el caso de una llamada al sistema Compilando los sistemas operativos y software comercial conforme a Linux Standard Base resultara en una Interfaz Binaria de Aplicacion ABI y por ello en portabilidad binaria Linux kernel y GNU C Library definen el Linux API Tras la compilacion los binarios ofrecen una ABI manteniendo esta ABI estable a lo largo del tiempo es importante para el vendedor independiente de software La adhesion a las ABIs las cuales pueden o no estar oficialmente estandarizadas es normalmente trabajo del compilador sistema operativo o de la libreria pero los programadores de aplicaciones pueden tratar con las ABIs directamente cuando escriben las aplicaciones en una mezcla de lenguajes de programacion utilizando interfaces de funciones foraneas entre ellas Las ABIs difieren de las interfaces de programacion de aplicaciones API en que ambas definen interfaces entre componentes de programa pero las API a nivel de codigo fuente Indice 1 Descripcion 2 EABI 3 Vease tambien 4 Referencias 5 Enlaces externosDescripcion EditarLas ABIs cubren aspectos como tamanos disposicion y alineamiento de los tipos de datos la convencion de llamada que controla como se pasan los argumentos de las funciones y se recuperan los valores devueltos por ejemplo si todos los parametros se pasan a la pila o si algunos parametros pasan a los registros que registros se utilizan para que parametros de una funcion y que parametro pasa primero a la pila si pasa el primero o el ultimo como una aplicacion deberia realizar llamadas al sistema del sistema operativo y si la ABI especifica llamadas directas al sistema en vez de llamadas de procedimiento las direcciones de llamada y en el caso de un ABI de sistema operativo completo el formato binario de los archivos objeto de las librerias de programa etc Un ABI completo como el Estandar 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 librerias compartidas necesarias y tenga los mismos prerrequisitos Otras ABIs estandarizan detalles como la convencion de nombres de funciones en C 2 manejo de excepciones propagacion 3 y convencion sobre llamadas entre compiladores de la misma plataforma que no requieren compatibilidad con otras plataformas EABI EditarUna interfaz binaria de aplicacion embebida EABI especifica convenciones estandarizadas para los formatos de archivo tipos de datos uso de registros organizacion de la pila y paso de parametros en funciones de una aplicacion de un sistema embebido Los compiladores que soportan EABI crean codigo objeto compatible con el codigo generado por otros compiladores permitiendo a los desarrolladores enlazar librerias generadas con otros compiladores Los desarrolladores que escriben su propio codigo 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 proposito general son que se permiten instrucciones privilegiadas en el codigo de la aplicacion sin necesidad de enlazado dinamico y se utiliza un marco de pila mas compacto para ahorrar memoria 4 La eleccion de EABi puede afectar al rendimiento 5 6 Ejemplos de EABIs ampliamente utilizadas PowerPC 7 ARM EABI2 8 y MIPS EABI 9 Vease tambien EditarInterfaz de funciones foraneas Binding Puntero opacoReferencias Editar Intel Binary Compatibility Standard iBCS Itanium C ABI compatible con multiples arquitecturas Itanium C ABI Exception Handling Archivado el 12 de diciembre de 2012 en Wayback Machine compatible con multiples arquitecturas EABI Summary PowerPC Embedded Application Binary Interface 32 Bit Implementation Version 1 0 edicion Freescale Semiconductor Inc 1 de octubre de 1995 pp 28 30 Debian ARM accelerates via EABI port Linuxdevices com 19 de enero de 2007 Archivado desde el original el 21 de enero de 2007 Consultado el 11 de octubre de 2007 Andres Calderon and Nelson Castillo 14 de marzo de 2007 Why ARM s EABI matters Linuxdevices com Archivado desde el original el 31 de marzo de 2007 Consultado el 11 de octubre de 2007 PowerPC Embedded Processors Application Note enlace roto disponible en Internet Archive vease el historial la primera version y la ultima ARM Information Center Infocenter arm com Consultado el 27 de febrero de 2014 Eric Christopher mips eabi documentation Cygwin com 11 de junio de 2003 Archivado desde el original el 30 de marzo de 2013 Consultado el 27 de febrero de 2014 Enlaces externos EditarKDE Techbase Policies Buen compendio de reglas de desarrollo con algunos ejemplos para no romper la compatibilidad binaria entre diferentes versiones de tu libreria Mac OS X ABI Function Call Guide Debian ARM EABI port µClib Motorola 8 16 bit embedded ABI AMD64 x86 64 Application Binary Interface Application Binary Interface ABI para la arquitectura ARM Documentacion sobre EABI de MIPS Sun Studio 10 Compilers and the AMD64 ABI Buen sumario y comparacion entre algunas ABIs populares M CORE Applications Binary Interface Standards Manual for the Freescale M CORE processors Datos Q721623Obtenido de https es wikipedia org w index php title Interfaz binaria de aplicaciones amp oldid 127062536, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos