Glibc
aus Wikipedia, der freien Enzyklopädie
Der korrekte Titel dieses Artikels lautet „glibc“. Diese Schreibweise ist aufgrund technischer Einschränkungen nicht möglich. |
glibc | |
---|---|
Basisdaten | |
Entwickler: | Free Software Foundation |
Aktuelle Version: | 2.5 (29. September 2006) |
Betriebssystem: | UNIX, GNU/Linux |
Kategorie: | Standard C Library |
Lizenz: | LGPL |
Deutschsprachig: | ja |
Website: | gnu.org/software/libc/ |
glibc, die GNU C-Bibliothek, ist eine freie Implementierung der Standard C Library, die vom GNU-Projekt zusammen mit der GNU Compiler Collection entwickelt wird.
Die glibc steht unter der LGPL, was den Einsatz der Bibliothek bei nicht freier Software ermöglicht.
Zusätzlich zu den von den C-Standards geforderten Funktionen bietet sie auch eine Reihe von (nicht standardisierten) Erweiterungen und Performance-Verbesserungen.
Eines der Designziele der glibc ist Portabilität, daher ist sie auch für eine Reihe von Betriebssystemen verfügbar. Einige Betriebssysteme, darunter GNU und GNU/Linux, benutzen die glibc als ihre offizielle Standard-C-Bibliothek. Die Bibliotheken der glibc sind selbst zum größten Teil auch in C geschrieben, performance-kritische Routinen verwenden jedoch handoptimierten Assembler-Code.
Die neueste Version der glibc trägt die Versionsnummer 2.5 (Stand: 29. September 2006). Mit der glibc 2.3 wurde eine Reihe von Verbesserungen integriert, die wichtigste davon ist die Ersetzung der alten Linux-Threading-Erweiterung linuxthreads durch die Native POSIX Thread Library (NPTL), die ebenso wie die glibc selbst federführend bei Red Hat entwickelt wurde. Die NPTL ermöglicht in Zusammenarbeit mit dem neuen Linux-Kernel 2.6 eine deutliche Leistungssteigerung beim Threading und ist dabei POSIX-konform. Da man abwärtskompatibel sein wollte, steht für Programme, die auf nicht POSIX-konforme Verhaltensweisen der alten Implementation angewiesen sind, auch weiter linuxthreads zur Verfügung, man muss es nun aber explizit per Linker-Direktive anfordern (z. B. LD_ASSUME_KERNEL=2.4.22
). Auch die glibc selbst ist in den wichtigsten Funktionen abwärtskompatibel. Der kleinste gemeinsame Nenner ist dabei die Funktionalität der libc6, weshalb die Bezeichnungen glibc und libc6 auch häufig synonym füreinander verwendet werden (auf Alpha- und IA-64-Architekturen heißen die Bibliotheken aus historischen Gründen libc6.1, bieten jedoch die gleiche Funktionalität).
Ihre Universalität ist gleichzeitig aber auch der größte Kritikpunkt an der glibc. Durch die Menge des einzubindenden Codes werden gegen die glibc gelinkte Programme unnötig groß und damit potenziell langsam. Eine Reihe von Projekten hat sich daher der Idee verschrieben, schlanke Alternativen zu glibc zu entwickeln, die bekanntesten sind uClibc und dietlibc. Durch Beschränkung auf die wirklich wesentlichen Dinge erreichen diese Implementierungen eine weitaus geringere Binary-Größe, allerdings lässt sich nicht jedes glibc-Programm auch gegen diese alternativen Bibliotheken linken, oder es verhält sich nachher unerwartet. Vor allem für Embedded-Systeme sind die schlanken libcs jedoch sehr sinnvoll.
[Bearbeiten] Weblinks
- Offizielle Seite des GNU-Projekts zur glibc