30 lines
1.0 KiB
Markdown
30 lines
1.0 KiB
Markdown
# 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
|
|
|