Application binary interface
En informatique, une Application Binary Interface (ABI, interface binaire-programme), décrit une interface de bas niveau entre les applications et le système d'exploitation, entre une application et une bibliothèque ou bien entre différentes parties d’une application. Une ABI diffère d’une API, puisqu'une API définit une interface entre du code source et une bibliothèque, de façon à assurer que le code source fonctionnera (compilera, si applicable) sur tout système supportant cette API.
Une ABI définit notamment des conventions d'appel des fonctions pour une architecture donnée. C'est l'ABI qui définit le rôle précis des registres généraux (paramètres de fonctions, résultats de fonctions, variables temporaires ?) et la responsabilité de leur intégrité (appelant ou appelé). C'est l'ABI qui définit la structure de la pile, notamment l'organisation des emplacements réservés aux paramètres supplémentaires d'appel d'une fonction, à la sauvegarde de certains registres, à l'allocation de mémoire dynamiquement sur la pile (taille connue à la compilation) selon la portée de l'identifiant.
Une ABI est une convention qui lie une architecture, un langage de programmation et un compilateur.
Voir également
[modifier | modifier le code]Liens internes
[modifier | modifier le code]- API (Interface de programmation)
- Interface (informatique)
Liens externes
[modifier | modifier le code]- (fr) Quelques pensées sur la compatibilité binaire et sur les conventions d'appel, deux points importants des ABI.
- (en) L’ABI AMD64