Application Binary Interface

Eine Binärschnittstelle definiert eine Schnittstelle auf Maschinenebene zwischen einem Programm und dem Betriebssystem, bzw. zwischen einem Programm und einer Bibliothek, oder auch zwischen verschiedenen Bestandteilen des Programms. Eine Binärschnittstelle wird auch als ABI (englisch application binary interface) bezeichnet.

Es wird definiert, wie der Programmcode auf Ebene der Maschinensprache auszusehen hat, der eine solche Schnittstelle verwendet. Beispiele dafür sind die Reservierung von bestimmten Prozessorregistern für bestimmte Zwecke, die Richtung des Stacks oder das Format von Gleitkommazahlen.

Eine Binärschnittstelle unterscheidet sich von einer Programmierschnittstelle (API) (englisch application programming interface) darin, dass die Programmierschnittstelle eine Schnittstelle auf Quelltextebene definiert. Dadurch lässt sich der Quelltext auf verschiedenen Maschinen kompilieren, die die Programmierschnittstelle unterstützen. Die Binärschnittstelle dagegen erlaubt den Betrieb auf allen Systemen, die eine binärkompatible Schnittstelle zur Verfügung stellen, ohne dass ein Neukompilieren erforderlich wäre.

Die Binärschnittstelle stellt neben der Festlegung auf eine Architektur auch einen definierten Übergang vom Programm ins Betriebssystem dar. Es regelt Dinge wie Aufrufkonventionen, Systemaufruftabellen, die Bedeutung von Signalnummern und so weiter. Es sollte möglich sein, dasselbe Programm im Binärformat auf allen Systemen laufen zu lassen, die dessen ABI unterstützen.

Eine ABI gilt manchmal nur für eine Programmiersprache bzw. einen Compilertyp, da die Regeln, wie beispielsweise aus einer Funktionsdefinition ein symbolischer Name werden soll, sprachabhängig sind.

Ändert sich eine ABI, müssen alle Programme, für die sie gilt, neu kompiliert werden – daher passiert dies sehr selten. Ein jüngeres Gegenbeispiel ist jedoch die C++-ABI für den GNU-C++-Compiler, die sich zuerst von Version 2.95 zu Version 3.0 änderte; auf Grund von Fehlern in dieser neuen ABI kam es bald darauf in der Version 3.1 zu einer weiteren Umstellung, die wiederum bald darauf durch die ABI der Version 3.2 abgelöst wurde, um zu anderen Compilern wie dem von Intel kompatibel zu sein. Da es kaum möglich ist, das System sanft an eine neue ABI anzupassen, löste dieser schnelle Wechsel viel Unmut aus. Der letzte ABI Wechsel erfolgte mit Version 3.4, welche auch in der aktuellen 4.x Reihe des GCC Verwendung findet. Da die eingesetzte GCC Version von Linux-Distribution zu Linux-Distribution verschieden sein kann, müssen C++-Programme für Linux, die hauptsächlich auf dem GNU Compiler aufbauen, entweder im Quelltext oder in mehreren ABI-Versionen ausgeliefert werden.

Siehe auch: Binärkompatibilität


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Application binary interface — In computer software, an application binary interface (ABI) describes the low level interface between an application program and the operating system, or the interface between an application and its libraries, or that between component parts of… …   Wikipedia

  • Application binary interface — En informatique, une Application Binary Interface (ABI, interface binaire programme), décrit une interface bas niveau entre les applications et le système d exploitation, entre une application et une bibliothèque ou bien entre différentes parties …   Wikipédia en Français

  • Application Binary Interface —    Abbreviated ABI. A specification that aims to ensure binary compatibility between applications running on the same family of processors or CPUs using Unix System V Release 4. Applications developed using ABI can run on hardware from different… …   Dictionary of networking

  • Embedded Application Binary Interface — An embedded application binary interface (EABI) specifies standard conventions for file formats, data types, register usage, stack frame organization, and function parameter passing of an embedded software program.Compilers that support the EABI… …   Wikipedia

  • Windows Application Binary Interface —    Abbreviated WABI. A specification developed by Sun Microsystems that defines how Microsoft Windows applications run on Unix workstations. The WABI interface translates the system calls made by the application into system calls that the… …   Dictionary of networking

  • Application programming interface — API redirects here. For other uses, see API (disambiguation). An application programming interface (API) is a source code based specification intended to be used as an interface by software components to communicate with each other. An API may… …   Wikipedia

  • Windows Application Programming Interface — Das Windows Application Programming Interface (kurz: WinAPI; Englisch für: Windows Anwendungs Programmierschnittstelle) ist eine Programmierschnittstelle und Laufzeitumgebung, welche Programmierern bereitsteht, um Anwendungsprogramme für… …   Deutsch Wikipedia

  • Netscape Plugin Application Programming Interface — (NPAPI) is a cross platform plugin architecture used by many web browsers.It was first developed for the Netscape family of browsers starting with Netscape Navigator 2.0 but has subsequently been implemented in other browsers including Mozilla… …   Wikipedia

  • Fragile binary interface problem — The fragile binary interface problem or FBI is a shortcoming of certain object oriented language compilers, in which internal changes to an underlying class library can cause descendant libraries or programs to cease working. It is an example of… …   Wikipedia

  • Generic Security Services Application Program Interface — The Generic Security Services Application Program Interface (GSSAPI, also GSS API) is an application programming interface for programs to access security services.The GSSAPI is an IETF standard that addresses the problem of many similar but… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”