Esto es lo que dice Wikipedia:¿Qué es ABI (Application Binary Interface)?
En el software del ordenador, una interfaz de aplicación binaria (ABI) describe la interfaz de bajo nivel entre una aplicación (o cualquier tipo de) programa y el sistema operativo o otra aplicación .
ABI cubre detalles tales como tipo de datos, tamaño , y alineación; la convención de llamada , que controla cómo se pasan los argumentos de las funciones y se recuperan los valores de retorno ; los números de llamada del sistema y cómo una aplicación debe realizar llamadas al sistema ; y en el caso de un sistema operativo completo ABI, el formato binario de archivos de objetos, programa bibliotecas y más. Una completa ABI, como la compatibilidad binaria estándar de Intel (IBC), permite que un programa de un sistema operativo compatible que ABI se ejecute sin modificaciones en cualquier otro sistema de este tipo, siempre que las bibliotecas compartidas necesarias son presente, y se cumplen los requisitos previos similares .
Supongo que un ABI es una convención o estándar, y los compiladores/vinculadores usan esta convención para producir códigos de objeto. ¿Está bien? Si es así, ¿quién hizo estas convenciones (empresas o alguna organización)? ¿Cómo era cuando no había ABI? ¿Hay documentos sobre estos ABI a los que podamos referirnos?
Ver http://stackoverflow.com/questions/2171177/i-never-really-understood-what-is-application-binary-interface-abi – Simone