Programmbibliothek: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Eine <b>Programmbibliothek</b> ist in der [[Programmierung]] eine Sammlung von Programmfunktionen für zusammengehörige Aufgaben. Programmbibliotheken sind im Unterschied zu | Eine <b>Programmbibliothek</b> ist in der [[Programmierung]] eine Sammlung von Programmfunktionen für zusammengehörige Aufgaben. Programmbibliotheken sind im Unterschied zu [[Programm]]en keine eigenständig lauffähigen Einheiten, sondern blosse Hilfsmodule, die Programmen zur Verfügung gestellt werden. | ||
Es gibt drei Arten von Programmbibliotheken. | Es gibt drei Arten von Programmbibliotheken. | ||
Zeile 24: | Zeile 24: | ||
{{cat|Programm}} | |||
{{cat|Programmbibliothek}} | {{cat|Programmbibliothek}} | ||
{{cat|Programmierung}} | {{cat|Programmierung}} |
Version vom 30. Januar 2009, 13:18 Uhr
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.