Bibliothek

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche

Eine Bibliothek ist eine Sammlung von einzelnen Programmabschnitten. Diese Abschnitte heißen Funktionen. Funktionen sind selten selbstständig ausführbar, können aber durch andere Programme ausgeführt werden. Jede Funktion in einer so zusammen gefassten "Bibliothek" erfüllt eine bestimmte Aufgabe.

So kann eine Funktion die Lösung eines komplexen mathematischen Problems enthalten und von anderen Programmierern genutzt werden. Kommt es durch einen Programmierfehler zu einem falschen Ergebnis, muss nicht jedes Programm verändert werden, sondern lediglich die entsprechende Funktion der Bibliothek.

Für die Programmiersprache C heißt die grundlegende Bibliothekensammlung Glibc. Für die Programmiersprache C++ wäre libstdc++ das Gegenstück.
Ein GNU Betriebssystem mit Linux-Kern nutzt üblicher Weise das ELF-Datenformat und Bibliotheken werden mit der Endung .so versehen, eine Abkürzung die für 'shared object' steht und übersetzt etwa 'gemeinsam nutzbares Objekt' bedeutet. Gemeint ist eben, dass diese Bibliothek im Haupt-Speicher als Abbild abgelegt werden kann und ein oder mehrere Programme bestimmte Funktionen aus diesem Abbild ausführen können.

Der Sinn einer Bibliothek ist die Reduktion von Redundanzen (Verminderung von Überschüssigem). So muss nicht jeder Programmierer das Rad stets neu erfinden und bestimmte häufig genutzte Funktionen stehen im Hauptspeicher bereit. Durch die Nutzung von Funktionen wird der Umfang des Hauptprogramms verringert.

Allerdings sieht die Praxis mal wieder etwas anders aus als die Theorie. Schlecht gegliederte und schlecht dokumentierte Bibliotheken sind kontraproduktiv und treiben so manchen Programmierer zur Verzweiflung. Englisch ist nicht gerade prädestiniert für technische Dokumentationen, da es durch eine hohe Zahl an Homonymen sehr unpräzise ist. Zudem werden viele Dokumentationen durch Menschen erstellt, die Englisch als Zweit- oder gar als Drittsprache erlernt haben und das Ausdrucksvermögen oft äussert begrenzt ist. Aus diesem Grunde empfehle ich den Quelltext in der Sprache zu dokumentieren, die man am besten kann. Wenn das Programm tatsächlich gut ist, wird sich auch jemand die Mühe machen, die Dokumentation zu übersetzen. Wer sich hierzu eine eigene Meinung bilden möchte, dem sei ein Blick auf http://de.wikipedia.org/wiki/Wortschatz, http://wortschatz.uni-leipzig.de/ oder auf den Inhalt des Instituts für deutsche Sprache IDS geraten.

Wenn sie wissen möchten, welche Bibliotheken von einem Programm im ELF-Format benötigt werden, kann das BASH-Skript ldd benutzt werden.
Beispiel (Vorgehensweise wie hier beschrieben):

$ b=$(which cat); ldd $b

ldd ist im Paket glibc-common enthalten. Wenn sie mit POSIX-Shell-Programmierung vertraut sind, können sie den Inhalt des Skriptes durch

$ more /usr/bin/ldd

betrachten und analysieren. Das Akronym ldd steht für list dynamic dependencies, also liste/zeige dynamische Abhängigkeiten.