www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Eine Binarschnittstelle englisch application binary interface ABI definiert eine Schnittstelle zwischen zwei Computerprogrammen auf Maschinenebene Ein Programm ist dabei meist das Betriebssystem oder eine Programmbibliothek Binarschnittstellen engl ABI und Programmierschnittstellen engl API sollten nicht verwechselt werden Inhaltsverzeichnis 1 Funktionsweise 2 Beispiele 2 1 Component Object Model 2 2 Common Object Request Broker Architecture 2 3 Object Linking and Embedding 3 Siehe auch 4 Literatur 5 EinzelnachweiseFunktionsweise BearbeitenDie Binarschnittstelle definiert wie der Programmcode auf Ebene der Maschinensprache auszusehen hat der eine solche Schnittstelle verwendet Beispiele dafur sind die Reservierung von bestimmten Prozessorregistern fur bestimmte Zwecke die Richtung des Stacks oder das Format von Gleitkommazahlen Eine Binarschnittstelle unterscheidet sich von einer Programmierschnittstelle englisch application programming interface API darin dass die Programmierschnittstelle eine Schnittstelle auf Quelltextebene definiert Dadurch lasst sich der Quelltext auf verschiedenen Maschinen kompilieren die die Programmierschnittstelle unterstutzen Die Binarschnittstelle dagegen erlaubt den Betrieb auf allen Systemen die eine binarkompatible Schnittstelle zur Verfugung stellen ohne dass ein Neukompilieren erforderlich ware Die Binarschnittstelle stellt neben der Festlegung auf eine Architektur auch einen definierten Ubergang vom Programm ins Betriebssystem dar Es regelt Dinge wie Aufrufkonventionen Systemaufruftabellen die Bedeutung von Signalnummern und so weiter Es sollte moglich sein dasselbe Programm im Binarformat auf allen Systemen laufen zu lassen die dessen ABI unterstutzen Eine ABI gilt manchmal nur fur eine Programmiersprache bzw einen Compilertyp da die Regeln wie beispielsweise aus einer Funktionsdefinition ein symbolischer Name gebildet werden soll sprachabhangig sind Andert sich eine ABI mussen alle Programme fur die sie gilt neu kompiliert werden daher passiert dies sehr selten Ein jungeres Gegenbeispiel ist jedoch die C ABI fur den GNU C Compiler die sich zuerst von Version 2 95 zu Version 3 0 anderte 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 abgelost wurde um zu anderen Compilern wie dem von Intel kompatibel zu sein Da es kaum moglich ist das System sanft an eine neue ABI anzupassen loste dieser schnelle Wechsel viel Unmut aus Der letzte ABI Wechsel erfolgte mit Version 3 4 freigegeben am 18 April 2004 welche auch in der aktuellen 4 x Reihe des GCC Verwendung findet GCC 9 bedingte 2019 einen ABI Wechsel fur Code fur ARM64 Prozessoren um einen Fehler in der Implementierung von Prozeduraufrufen mit einem Bitfeld zu beheben 1 Eine Binarschnittstelle fur eingebettete Systeme wird auch als EABI embedded application binary interface bezeichnet Beispiele BearbeitenComponent Object Model Bearbeiten Hauptartikel Component Object Model1993 veroffentlichte Microsoft das Component Object Model COM fur wiederverwendbare Objekte die von anderen Anwendungen benutzt werden konnten COM bietet eine sprachenunabhangige Kommunikation zwischen verschiedenen Software Komponenten Das COM Modell schafft unter dem Betriebssystem Windows die Voraussetzungen verschiedene Softwarekomponenten in einem System anzusprechen und mit anderen Komponenten zu verknupfen Neben dem Object Linking and Embedding OLE sind ActiveX und DirectX Technologien die auf dem COM Modell basieren 2 Einige Technologien bauen auf COM auf wie etwa Object Linking and Embedding OLE das eine Automatisierung von Anwendungen ermoglichte Die Versionen von Visual Basic die nach 1993 veroffentlicht wurden waren im Hinblick auf COM und OLE konzipiert worden Dieser Ansatz war so erfolgreich dass ein Dialekt der Sprache Visual Basic for Applications VBA zur Programmiersprache von Microsoft Office Makros gewahlt wurde 3 Common Object Request Broker Architecture Bearbeiten Hauptartikel Common Object Request Broker ArchitectureDie Common Object Request Broker Architecture CORBA ist eine Spezifikation fur objektorientierte anwendungsneutrale Programme die zwischen Anwendungsprogrammen vermitteln und die plattformubergreifende Protokolle und Dienste definiert Den Kern dieser Spezifikation bildet ein Vermittler der Object Request Broker ORB In Kombination mit einer Interface Definition Language IDL und einem Binarprotokoll unterstutzt CORBA den Binarstandard Object Linking and Embedding Bearbeiten Hauptartikel Object Linking and EmbeddingObject Linking and Embedding OLE ist ein von Microsoft entwickeltes Objektsystem und Protokoll das die Zusammenarbeit unterschiedlicher OLE fahiger Applikationen und damit die Erstellung heterogener Verbunddokumente ermoglichen soll Wahrend CORBA Interoperabilitat im Zusammenhang mit einer IDL garantiert definiert OLE selbst einen Binarstandard fur den Zugriff auf Serverschnittstellen Siehe auch BearbeitenBinarkompatibilitatLiteratur BearbeitenHolger Schwichtenberg COM Komponenten Handbuch Systemprogrammierung und Scripting mit COM Komponenten Pearson Deutschland 2001 ISBN 3 8273 1936 6 Peter Zoller Greer Software Architekturen Grundlagen und Anwendungen Einfuhrung in Architekturbeschreibungssprachen ADLs BoD Books on Demand 2010 ISBN 978 3 9811639 3 3 Frank Buschmann Pattern orientierte Software Architektur ein Pattern System Professionelle Softwareentwicklung Pearson Deutschland 1998 ISBN 3 8273 1282 5 Einzelnachweise Bearbeiten https gcc gnu org gcc 9 changes html COM Komponenten Handbuch COM Komponenten fur den Zugriff auf Windows und BackOffice Anwendungen pearson ch abgerufen am 2 Februar 2016 Technologien der Windows Entwicklung Geschichte der Windows Anwendungsentwicklung wiley vch de abgerufen am 19 Februar 2016 Abgerufen von https de wikipedia org w index php title Binarschnittstelle amp oldid 217798228