Programmbibliothek: Unterschied zwischen den Versionen

Aus Mikiwiki
Wechseln zu: Navigation, Suche
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 Programmen keine eigenständig lauffähigen Einheiten, sondern blosse Hilfsmodule, die Programmen zur Verfügung gestellt werden.
+
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.
 
{| class=wikitable width=100%
 
{| class=wikitable width=100%
! width=15% | !! Endung !! Bermerkungen
+
! width=15% | Art der Bibliothek !! width=15% | Dateinamenserweiterung !! Beschreibung
 
|-
 
|-
 
| <b>Quelltextbibliothek</b>
 
| <b>Quelltextbibliothek</b>
Zeile 9: Zeile 9:
 
|-
 
|-
 
| <b>[[Statische Bibliothek]]</b>
 
| <b>[[Statische Bibliothek]]</b>
| <tt>.a</tt> (Unix)
+
| <tt>a</tt> (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.
 
| 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.
 
|-
 
|-
| <b>[[Systembibliothek]]</b><br>(auch: Dynamische Bibliothek; engl. shared library)
+
| <b>[[Systembibliothek]]</b>
| <tt>.so</tt> (Unix)<br><tt>.dll</tt> (Microsoft Windows)
+
| <tt>so</tt> (Unix)<br><tt>dll</tt> (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.
 
| 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.
 
|}
 
|}
Zeile 19: Zeile 19:
 
Die meisten Programme greifen auf gemeinsam genutzte [[Systembibliothek]]en 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.
 
Die meisten Programme greifen auf gemeinsam genutzte [[Systembibliothek]]en 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 ==
  
 +
{{Weblinks}}
 +
{{url_dewikipedia|Programmbibliothek|Programmbibliothek}}
 +
{{Fuss}}
 +
 +
 +
{{cat|Programm}}
 
{{cat|Programmbibliothek}}
 
{{cat|Programmbibliothek}}
 
{{cat|Programmierung}}
 
{{cat|Programmierung}}

Aktuelle Version vom 7. Februar 2010, 21:29 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.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger Programmbibliothekwbm Enzyklopädischer Artikel