Shared Libraries (Linux-Grundlagen)
Zur Navigation springen
Zur Suche springen
- Eine Shared Library ist eine gemeinsam genutzte Programmbibliothek, die von mehreren Programmen verwendet wird.
Idee dahinter
- Programme müssen häufig dieselben Funktionen nutzen (z.B. Dateizugriff, Ausgabe, Netzwerk).
- Diese Funktionen werden in Bibliotheken ausgelagert.
- Mehrere Programme greifen zur Laufzeit auf dieselbe Bibliothek zu.
Dateitypen
- libxyz.so (Shared Library)
- libxyz.a (Statische Library)
Beispiel
- /bin/ls nutzt keine eigene printf-Funktion
- ls verwendet die Funktion printf aus libc.so
Vorteile
- Weniger Speicherverbrauch
- Weniger Plattenplatz
- Updates der Library wirken sofort für alle Programme
Nachteile
- Falsche oder fehlende Library-Version kann Programme starten verhindern
- Abhängigkeiten müssen erfüllt sein
- /lib
- /lib64
- /usr/lib
- /usr/lib64
Wer lädt die Libraries?
- Der dynamische Linker (ld-linux.so)
Library-Abhängigkeiten anzeigen
- ldd /bin/ls
Merksatz
- Shared Libraries = gemeinsam genutzter Code zur Laufzeit
