GNU-C-Bibliothek

GNU-C-Bibliothek
glibc
Heckert GNU white.svg
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
Ältere Version; nicht mehr unterstützt: 1.0 März 1992
Ältere Version; nicht mehr unterstützt: 1.x 1992–1994
Ältere Version; nicht mehr unterstützt: 1.09 November 1994
Ältere Version; noch unterstützt: 2.0 Februar 1997
Ältere Version; noch unterstützt: 2.1 Mai 1999
Ältere Version; noch unterstützt: 2.2 Januar 2001
Ältere Version; noch unterstützt: 2.3 Oktober 2002 Native POSIX Thread Library (NPTL)
Ältere Version; noch unterstützt: 2.4 6. März 2006
Ältere Version; noch unterstützt: 2.5 29. September 2006
Ältere Version; noch unterstützt: 2.6 17. Mai 2007
Ältere Version; noch unterstützt: 2.7 19. Oktober 2007
Ältere Version; noch unterstützt: 2.8 11. April 2008
Ältere Version; noch unterstützt: 2.9 10. März 2009
Ältere Version; noch unterstützt: 2.10 Mai 2009 (?) Datum der Version 2.10.1
Ältere Version; noch unterstützt: 2.11 3. November 2009
Aktuelle Version: 2.12 August 2010 (?) Datum der Version 2.12.1
Aktuelle Version: 2.13 1. Februar 2011 (?) Datum der Version 2.13
Aktuelle Version: 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

Einzelnachweise

  1. http://ftp.gnu.org/gnu/glibc/
  2. http://www.eglibc.org/faq
  3. http://blog.aurel32.net/?p=47
  4. http://www.eglibc.org/home
  5. http://www.eglibc.org/news
  6. http://arklinux.wordpress.com/2009/05/13/ark-linux-switches-to-eglibc/

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • GNU — Die unter GNU verwendete Desktop Umgebung GN …   Deutsch Wikipedia

  • GNU's Not Unix — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • GNU-Manifest — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • GNU HURD — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • GNU Mach — GNU Die unter GNU verwendete Desktop Umgebung GNOME …   Deutsch Wikipedia

  • GNU Compact Disc Input and Control Library — Entwickler GNU Projekt Aktuelle Version 0.82 (2009 10 27) Betriebssystem plattformunabhängig Programmier­sprache …   Deutsch Wikipedia

  • GNU gettext — Entwickler Das GNU gettext Team (Maintainer: Bruno Haible) Aktuelle Version 0.18.1.1 (6. Juni 2010) Betriebssystem Unix artige Betriebssysteme, Windows (s. Weblinks) Kategorie …   Deutsch Wikipedia

  • GNU Parted — Entwickler GNU Projekt Aktuelle Version 3.0 (31. Mai 2011) Betriebssystem Plattformübergreifend Kategorie Partitionierungsprogramm …   Deutsch Wikipedia

  • GNU Linear Programming Kit — Maintainer Andrew Makhorin Entwickler The GNU Project Aktuelle Version 4.45 (5. Dezember 2010) Betriebssystem UNIX, Linux …   Deutsch Wikipedia

  • GNU readline — Entwickler Brian Fox, Chet Ramey Aktuelle Version 6.1 (1. Januar 2010) Betriebssystem plattformunabhängig Programmier­sprache C …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”