Statisch oder dynamisch?
Was sind Bibliotheken?
Ungeteilt
Die Alternative zur Verwendung von Shared Libraries bildet das feste Einbinden aller Bibliotheksdateien. In diesem Fall bezeichnet man ein Programm als "statisch gelinkt" (Englisch: statically linked). Es verlässt sich dann nicht darauf, dass es alle benötigten Bibliotheken vorfindet, sondern bringt sie selbst mit. Das vergrößert das Programmpaket oft um ein Vielfaches, macht es aber weitgehend unabhängig vom umgebenden System. Ein statisch gelinktes Programm empfiehlt sich, wenn man es beispielsweise auf einem tragbaren Medium speichern und auf verschiedenen Rechnern ausführen möchte.
Außer der Größe hat diese Statik einen weiteren Nachteil. Von Verbesserungen dynamischer Bibliotheken, wie gesteigerter Performance, profitiert ein statisch gelinktes Programm erst, nachdem es neu mit der neuen Version der Bibliothek kompiliert wurde. Ein dynamisch gelinktes Programm, das geteilte Bibliotheken verwendet, benutzt eine neue Version einer Bibliothek sofort.
Offene Büchereien
Das Prinzip der Shared Libraries macht in der Open-Source-Welt besonders viel Sinn. Denn jedes beliebige Programm kann eine freie Bibliothek nach Gutdünken verwenden. Die Windows-Pendants zu den so-Dateien enden auf dll und haben denselben Zweck. Unter dem Microsoft-Betriebssystem sind die meisten Programme aber statisch gelinkt oder bringen ihre eigenen DLL-Dateien mit; zum allgemeinen Einsatz gibt es hier nur systemnahe Funktionen. Unter Linux bilden die zahlreichen freien Bibliotheken dagegen die Grundlage für das Betriebssystem selbst sowie die meisten seiner Anwendungen.
Infos
[1] GNU C Library: http://www.gnu.org/software/libc/libc.html
[2] Qt: http://www.trolltech.com/products/qt/
[3] GTK: http://www.gtk.org/



