# Bibliotheken ## Gemeinsame Bibliotheken - In jedem modernen System vorhanden - bspw. I/O-, Grafikbibliotheken - Statt an jedes Programm statisch binden - _shared libraries_ - Bsp.: - normales Programm benutzt 20-50MB an Grafik- und Benutzungsschnittstellenfunktionen - hunderte solcher Programme - viel Speicher, RAM verschwendet - BS hat keine Möglichkeit um zu schauen, ob eine gemeinsame Nutzung infrage käme - Falls Programm mit gemeinsamen Bibliotheken verbunden - **Binder (_Linker_)** schließt _Stub-Routine_ ein - statt aktueller Funktionsaufrufe - Gemeinsame Bibliotheken gleichzeitig wie Programm / beim ersten Aufruf ihrer Funktion laden - abhängig vom System - Falls durch anderes Programm bereits geladen - Muss nicht nochmal! :) - Wird nicht auf einmal in den Speicher eingelesen - Bei Bedarf Seite für Seite - Keine Funktionen im RAM, die nicht gebraucht werden - Ausführbare Dateien bleiben klein - Falls Fehler in Bibliothek - Beheben - Nicht alle Programme neu übersetzen