De la Viquipedia, l'enciclopedia lliure
En
programari informatic
, una
interficie binaria d'aplicacio
(
ABI
) es una
interficie
entre dos moduls de programa binari. Sovint, un d'aquests moduls es una
biblioteca
o instal·lacio
del sistema operatiu
, i l'altre es un programa que esta executant un usuari.
[1]
Un ABI defineix com s'accedeix a les estructures de dades o rutines computacionals en
codi maquina
, que es un format de baix nivell que depen del maquinari. En canvi, una
interficie de programacio d'aplicacions
(API) defineix aquest acces al
codi font
, que es un format relativament alt, independent del maquinari, sovint
llegible per l'home
. Un aspecte comu d'un ABI es la
convencio de crida
, que determina com es proporcionen les dades com a entrada o com a sortida de les rutines computacionals. Exemples d'aixo son les
convencions de crida x86
.Adherir-se a un ABI (que pot o no estar estandarditzat oficialment) sol ser feina d'un
compilador
, sistema operatiu o autor de biblioteca. Tanmateix, un programador d'aplicacions pot haver de tractar directament amb un ABI quan escriu un programa en una barreja de llenguatges de programacio, o fins i tot compila un programa escrit en el mateix llenguatge amb compiladors diferents.
[2]
Un ABI es tan important com l'arquitectura de maquinari subjacent. El programa fallara igualment si infringeix qualsevol restriccio d'aquestes dues.
[3]
Els detalls coberts per un ABI inclouen els seguents:
- Conjunt d'instruccions del processador, amb detalls com l'estructura del fitxer de registre, l'organitzacio de la pila, els tipus d'acces a la memoria, etc.
- Mides, dissenys i
alineacions
dels
tipus de dades
basics als quals el processador pot accedir directament
- Crida a convention
, que controla com es passen els arguments de
les funcions
i es recuperen els valors; per exemple, controla el seguent:
- Si tots els parametres es passen a la pila o si alguns es passen en registres
- Quins registres s'utilitzen per a quins parametres de funcio
- Si el primer parametre de funcio passat a la pila s'envia primer o darrer
- Si la persona que truca o el destinatari es responsable de netejar la pila despres de la crida de funcio
- Com hauria de fer una aplicacio
crides al sistema
al sistema operatiu, i si l'ABI especifica crides directes al sistema en lloc de crides de procediment als
talons
de crides del sistema, els numeros de crida del sistema
- En el cas d'un sistema operatiu complet ABI, el format binari dels
fitxers objecte
, biblioteques de programes, etc.
[4]
ABI complets
[
modifica
]
Un ABI complet, com l'
Intel Binary Compatibility Standard
(iBCS), permet que un programa d'un sistema operatiu que admeti aquest ABI s'executi sense modificacions en cap altre sistema, sempre que hi hagi biblioteques compartides necessaries i hi hagi requisits previs similars. complert.
Els ABI tambe poden estandarditzar detalls com ara la
manipulacio de noms C++
, la propagacio
d'excepcions
, i la convencio de crida entre compiladors de la mateixa plataforma, pero no requereixen compatibilitat multiplataforma.