Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDonnerstag, 2. Oktober 2014 

Bibliothek (Programmierung)


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Eine Bibliothek oder Bücherei (englisch: library ) oder Programmbibliothek bezeichnet in der Programmierung eine Sammlung Programmfunktionalitäten für zusammengehörende Aufgaben.

Bibliotheken sind im Unterschied zu Programmen keine eigenständigen Einheiten sondern Hilfsmodule die zur Verfügung stehen.

Inhaltsverzeichnis

Quelltextbibliotheken

Quelltextbibliotheken enthalten Sammlungen von Wertedefinitionen Deklarationen Funktionen generischen Bestandteilen usw. ( siehe auch: API C-Standardbibliothek C++-Standardbibliothek)

Statische Bibliotheken

Statische Bibliotheken werden nach dem Kompilieren durch einen sogenannten Linker oder Binder in einem eigenen Schritt mit dem Programm verbunden.

Der Linker (Binder) sucht aus den Unterprogramme heraus für die es im Programm Implementierung gibt. Diese werden dann aus den extrahiert und an das Programm gebunden d.h. Unterprogrammcode wird an den Programmcode angefügt und Aufrufverweise werden auf die Unterprogrammadressen gerichtet.

Dynamische Bibliotheken

Dynamische Bibliotheken werden erst bei Bedarf in den geladen und durch einen sogenannten Lader mit ausführbaren Programm verbunden. Dadurch muss eine Bibliothek von mehreren Programmen genutzt wird nur einmal Speicher gehalten werden.

Dies ist beispielsweise bei Multitasking -Systemen vorteilhaft wenn die Bibliotheken insgesamt sehr sind und von vielen Prozessen gleichzeitig verwendet Dort wird eine Bibliotheksdatei bei ihrer ersten in den Speicher geladen. Trifft ein Programm den Verweis zu einem Unterprogramm das noch eingebunden wurde dann wird ein Laufzeitbinder aktiviert. sucht das Unterprogramm in den im Speicher Bibliotheken fügt die Adresse am Aufrufpunkt ein führt die das Unterprogramm erstmalig aus.

Bei jedem weiteren Aufruf des Unterprogramms dann die Adresse vorhanden so dass das direkt aufgerufen wird. Die Ausführungszeit insbesondere die eines Programms ist hier geringfügig erhöht. Dies in Kauf genommen da der Programmcode der von allen Prozessen geteilt wird. Der gesamte aller Programme zusammen ist daher in der kleiner als beim statischen Linken.

Bei den Betriebssystemen Windows und OS/2 wird eine Bibliotheksdatei die dynamisch bindet DLL (DLL für D ynamic L ink L ibrary ) bezeichnet. Auf Unix-artigen Betriebssystemen ( Unix Linux usw.) ist die Bezeichnung shared library (englisch shared geteilt) gebräuchlich.

Dynamische Bibliotheken liegen in Form von vor und haben unter Windows meist die Dateiendung .dll auf Unix-artigen System hat sich die .so ( s hared o bject ) eventuell gefolgt von einer Versionsnummer eingebürgert.

Dynamische Bibliotheken unter Windows

Unter Windows kann man noch zwischen Arten von DLLs unterschieden: Einsprungs-DLLs und ActiveX -DLLs . Einsprungs-DLLs enthalten Funktionen ActiveX-Dlls enhalten Klassen .

Bei Windows 95 Windows 98 und Windows Me ist problematisch dass durch unzureichende Schutzmaßnahmen DLLs nicht kontrolliert werden - jedes Programm sie austauschen und kann dem Betriebssystem damit Schaden zufügen. Windows 2000 und Windows XP hingegen verfügen über einen Systemschutz der die DLLs einbezieht.

Bibliotheken unter z/OS

Bei z/OS werden alle Partitioned Data Sets (PDS) als Bibliotheken bezeichnet. Die einzelnen dieser Bibliotheken werden allgemein Member oder wenn es sich um ausführbaren handelt auch Module genannt.

Statische Module müssen in einer Bibliothek die dem Linkage Editor als SYSLIB bekanntgegeben wird dynamische Module zur Laufzeit entweder aus der STEPLIB oder der JOBLIB geladen und wenn sie hier gefunden werden aus einer Bibliothek in der



Bücher zum Thema Bibliothek (Programmierung)

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Programmbibliothek.html">Bibliothek (Programmierung) </a>