- GNU-C-Bibliothek
-
glibc Basisdaten Entwickler Free Software Foundation Aktuelle Version 2.14
(1. Juni 2011)Betriebssystem UNIX, GNU/Linux Kategorie Standard C Library Lizenz LGPL Deutschsprachig ja 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/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 Assembler-Code.
Inhaltsverzeichnis
glibc 2.3
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 eingebettete Systeme sind die schlanken libc-Implementierungen jedoch sehr sinnvoll.
Versionsgeschichte
Die Veröffentlichungsdaten wurden, so weit möglich, vom offiziellen FTP-Server übernommen. [1]
Version Datum Bemerkungen 1.0 März 1992 1.x 1992–1994 1.09 November 1994 2.0 Februar 1997 2.1 Mai 1999 2.2 Januar 2001 2.3 Oktober 2002 Native POSIX Thread Library (NPTL) 2.4 6. März 2006 2.5 29. September 2006 2.6 17. Mai 2007 2.7 19. Oktober 2007 2.8 11. April 2008 2.9 10. März 2009 2.10 Mai 2009 (?) Datum der Version 2.10.1 2.11 3. November 2009 2.12 August 2010 (?) Datum der Version 2.12.1 2.13 1. Februar 2011 (?) Datum der Version 2.13 2.14 1. Juni 2011 Datum der Version 2.14 Hosting
Seit einiger Zeit wird das CVS-Repository der glibc auf http://sources.redhat.com/ gehosted, und fast ausschließlich von Ulrich Drepper gepflegt. Zusätzlich werden aktuelle Snapshots in den FTP-Archiven ftp://sources.redhat.com/pub/glibc/snapshots/ und ftp://ftp.gnu.org/gnu/glibc/ und deren Mirrors bereitgestellt. Damit kommt man der Community entgegen, da man z.B. durch restriktive Firewalls nicht von überall aus per CVS auf das Internet zugreifen kann.
EGLIBC Fork
Nach Problemen mit Ulrich Dreppers Umgang mit Bugs in glibc und der Kompatibilität mit embedded Systemen, besonders ARM-Prozessoren, wurde ein Fork des Projekts namens EGLIBC erstellt. Nach Selbsteinschätzung der Entwickler handelt es sich bei eglibc jedoch nicht um einen klassischen Fork, vielmehr wollen die Entwickler die Änderungen von glibc übernehmen, aber auch Patches akzeptieren, die keinen Einzug in glibc gefunden haben.[2] Damit verfolgt eglibc das Ziel, einen freundlicheren Umgang mit Entwicklern zu pflegen und embedded Prozessoren besser zu unterstützen. Als erste große Linux-Distribution hat Debian auf diese Implementierung umgestellt.[3][4] Ubuntu verwendet seit Version 9.10 EGLIBC,[5] mittlerweile ebenfalls Ark Linux.[6]
Weblinks
- Offizielle Seite des GNU-Projekts zur glibc
Einzelnachweise
Kategorien:- Bibliothek (Programmierung)
- Programmiersprache C
- GNU
- Linux-Software
- Unix-Software
Wikimedia Foundation.