Je n'ai jamais compris clairement ce qui est de l'ABI. Je suis désolé pour ces longs question. Je veux juste bien comprendre les choses. Merci de ne pas me pointer à l'article wiki, Si elle pouvait le comprendre, je ne serais pas ici de poster un aussi long post.
C'est mon état d'esprit sur les différentes interfaces:
Télécommande TV est une interface entre l'utilisateur et de la TÉLÉVISION. C'est une entité existante, mais inutile (ne fournit pas toutes les fonctionnalités) par lui-même. Toutes les fonctionnalités de chacun de ces boutons sur la télécommande est mise en œuvre dans le poste de Télévision.
Interface: C'est une "entité existante" couche entre le
functionality
etconsumer
de la fonctionnalité. Une, interface en elle-même est ne rien faire. Il vient de invoque la fonctionnalité de mentir derrière.Maintenant, en fonction de l'identité de l'utilisateur est-il sont différents type d'interfaces.
Interface de Ligne de commande(CLI) les commandes sont les entités existantes, la consommation est l'utilisateur et la fonctionnalité qui se cache derrière.
functionality:
mon logiciel la fonctionnalité qui résout certains but pour lequel nous sommes décrivant cette interface.
existing entities:
commandes
consumer:
utilisateurInterface Utilisateur graphique(GUI) de la fenêtre,les boutons, etc.. sont les entités, le nouveau consommateur est l'utilisateur et la fonctionnalité se trouve derrière.
functionality:
mon logiciel la fonctionnalité qui résout certains but pour lequel nous sommes décrivant cette interface.
existing entities:
de la fenêtre,les boutons etc..
consumer:
utilisateurInterface de Programmation d'Application(API) de fonctions ou à être de plus correct, les interfaces (en interfacé en fonction de la programmation) sont les les entités existantes, la consommation est ici un autre programme et non à un utilisateur. et encore la fonctionnalité se trouve derrière cette couche.
functionality:
mon logiciel la fonctionnalité qui résout certains but pour lequel nous sommes décrivant cette interface.
existing entities:
fonctions, Interfaces(tableau de fonctions).
consumer:
autre programme/de l'application.Application Binary Interface (ABI) , Voici mon problème commence.
functionality:
???
existing entities:
???
consumer:
???
- J'ai écrit quelques logiciels dans différentes langues différents types d'interfaces (CLI, GUI, API), mais je ne suis pas sûr que, si jamais je, à condition que les ABI.
ABIs détails de la couverture tels que
- type de données, la taille et l'alignement;
- la convention d'appel, qui contrôle la manière dont les arguments des fonctions sont passé et retourner les valeurs récupérées;
- le système de numéros d'appel et la façon dont l'application devrait faire des appels système pour le système d'exploitation;
D'autres ABIs normaliser les détails tels que
- le C++ name mangling,[2] .
- la propagation d'exception,[3] et
- convention d'appel entre les compilateurs sur la même plate-forme, mais ne pas besoin de la croix-plate-forme la compatibilité.
Qui a besoin de ces détails? Merci de ne pas dire, OS. Je sais assemblage de programmation. Je sais comment la liaison et des travaux de chargement. Je sais exactement ce qui se passe à l'intérieur.
Où avez-C++ name mangling venir entre les deux? Je pensais que nous parlons au niveau binaire. Où avez-langues il y a entre les deux?
de toute façon, j'ai téléchargé le [PDF] Système V Application Binary Interface Edition 4.1 (1997-03-18) pour voir exactement ce qu'il contient. Eh bien, elle n'a pas de sens.
Pourquoi a-t-il contenir 2 chapitres (4 et 5) qui décrivent l' ELFE de format de fichier.En effet, ce sont les 2 seuls chapitres importants de la spécification. Reste de tous les chapitres "Processeur Spécifique". De toute façon, j'ai pensé qu'il est sujet complètement différent. Merci de ne pas dire que l'ELFE format de fichier specs sont l'ABI. Il n'est pas admissible à être
Interface
selon la définition.Je sais, puisque nous parlons à ce bas niveau, il doit être très précis. Mais je ne suis pas sûr de savoir comment est-il "l'Instruction Set Architecture(ISA)" spécifique?
Où puis-je trouver MME de la Fenêtre ABI?
Donc, ce sont les principales requêtes qui m'énerve.