Programmbibliothek

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Eine Programmbibliothek ist in der Programmierung eine Sammlung von Programmfunktionen für zusammengehörige Aufgaben. Programmbibliotheken sind im Unterschied zu Programmen keine eigenständig lauffähigen Einheiten, sondern blosse Hilfsmodule, die Programmen zur Verfügung gestellt werden.

Es gibt drei Arten von Programmbibliotheken.

Art der Bibliothek Dateinamenserweiterung Beschreibung
Quelltextbibliothek
Statische Bibliothek a (Unix) Normalerweise in einem "lib"-Verzeichnis wie "/usr/lib". Die statische Standard-C-Bibliothek ist "/usr/lib/libc.a". Der Linker kopiert den nötigen Code aus einer statischen Bibliothek ins ausführbare Programm.
Systembibliothek so (Unix)
dll (Microsoft Windows)
Anstatt Code aus der Bibliothek zu kopieren, setzt der Linker einen Zeiger auf die Bibliothek ins Programm. Wenn das Programm abläuft, wird der "run-time linker" (auch: "dynamic loader") aufgerufen, der die Bibliothek sucht und den nötigen Code in den Arbeitsspeicher lädt. Dabei ist für alle laufenden Programme nur eine Kopie der Systembibliothek im Arbeitsspeicher vorhanden.

Die meisten Programme greifen auf gemeinsam genutzte Systembibliotheken zu. Beim Kompilieren können Bibliotheken aber auch statisch verknüpft werden, die Bibliotheksfunktionen werden so direkt in den Programmcode eingebaut. Dadurch werden allerdings die Programme grösser und werden auch entsprechend lamgsamer geladen und gestartet. Sicherheitsrelevante Software wird trotzdem oft statisch kompiliert, um zu verhindern, dass ein Angreifer in gelinkte Bibliotheken Sicherheitslücken einbauen kann.

Weblinks

Vorlage:Weblinks1