Interface de binaire d\'application

Dans le logiciel , une interface de binaire d'application de ( ABI ) décrit l'interface de bas niveau entre un programme d'application et le du système d'exploitation, ou l'interface entre une application et ses bibliothèques , ou celle entre les éléments d'une application. Un ABI est semblable à une interface de programmation API pour commandes Tempus-link (api), toutefois ce dernier définit une interface du code source . Simplement mis, ABIs permettent la compatibilité binaire, tandis que les api permettent la compatibilité de code source.

Par exemple, la norme du POSIX définit un api qui permet à un éventail de fonctions de calcul communes d'être écrits tels qu'elles peuvent opérer beaucoup de différents systèmes (le Mac de OS x , divers schémas et Microsoft Windows tout mettent en application cette interface), cependant, l'utilisation de ceci exige la recompilation pour chaque plate-forme. Un ABI compatible, d'une part, permet au code d'objet compilé de ne fonctionner sans aucun changement, sur n'importe quel système mettant en application cet ABI. C'est advantagous aux fournisseurs de logiciel (où il peut distribuer le logiciel existant sur de nouveaux systèmes sans produire/mises à niveau de distribution) et utilisateurs (où ils peuvent installer un logiciel plus ancien sur leurs nouveaux systèmes sans acheter des mises à niveau), bien que ceci exige généralement de diverses bibliothèques de logiciel mettant en application les api nécessaires aussi.

Microsoft a montré l'engagement significatif à a vers l'arrière - ABI compatible, en particulier dans leur bibliothèque du Win32 , tels que des applications plus anciennes peuvent fonctionner sur de plus nouvelles versions de Windows. Apple ont montré moins de propension à ce souci, compatibilité de expiration ou ABI de mise en oeuvre dans un " plus lent ; mode" d'émulation ; ; beaucoup arguent du fait que ceci permet une plus grande liberté à l'étude au coût d'obsoleting un logiciel plus ancien. Parmi le Unix-comme des logiciels d'exploitation de , il y a beaucoup de logiciels d'exploitation connexes mais incompatibles fonctionnant sur une plate-forme de visserie commune (en particulier Intel 80386 - systèmes compatibles). Il y a eu plusieurs tentatives de normaliser l'ABI tels que les fournisseurs de logiciel peuvent distribuer une demande binaire de tous ces systèmes, de quelque manière que jusqu'ici, aucune de ces derniers ont rencontré beaucoup de succès. La base standard de Linux de essaye de faire ceci pour la plate-forme du Linux tandis que plusieurs des unices de schéma ( OpenBSD / NetBSD / FreeBSD ) mettent en application de divers niveaux de compatibilité d'ABI pour des les deux compatibilité en travers ascendante de plate-forme de compatibilité (permettant des applications écrites pour des versions plus anciennes à la course sur de plus nouvelles distributions du système) aussi bien (permettant l'exécution du code étranger sans recompilation).

Détails de couverture d'ABIs tels que le appelle la convention , qui commande comment des arguments des fonctions des valeurs sont passés et de retour recherchées ; les nombres de l'appel système et comment une application devrait faire des appels système au du système d'exploitation ; et dans le cas d'un ABI du système d'exploitation complet, le format binaire des bibliothèques de programmes des fichiers objets d'exécution et ainsi de suite. Un ABI complet, tel que la norme de compatibilité binaire d'Intel (iBCS), permet un programme d'un du système d'exploitation soutenant cet ABI à la course sans modifications sur n'importe quel autre un tel système. L'autre ABIs normalisent des détails tels que la décoration nommée du C++, la propagation de l'exception , et appeler la convention entre les compilateurs sur la même plate-forme, mais n'exigent pas la compatibilité de croix-plate-forme.

Voir également

programmant
Indicateur opaque
Environnement de PowerOpen de
Interface de binaire d'application incluse par

.

Random links:Cinq points (Colombie) | Sittelle corse | Chiffrement de George | Armageddon de vers | John Warburton (producteur) | Interfaz_de_binario_de_uso