diet libc

diet libc
diet libc
Entwickler Felix von Leitner
Aktuelle Version 0.32
(29. Mai 2009)
Betriebssystem Linux (Architekturen: x86, ARM, SPARC, Alpha, PowerPC, MIPS, HPPA, S/390)
Kategorie Standard C Library
Lizenz GPLv2
diet libc-Homepage

Die diet libc („diet“ engl. für Diät) ist eine Softwarebibliothek für Linux-Betriebssysteme, welche den Funktionsumfang der Standard-C-Bibliothek implementiert. Mit diet libc soll es ermöglicht werden, für Linux besonders kompakte Binärdateien zu erstellen. Die Bibliothek wurde von Felix von Leitner unter Mithilfe von bisher etwas über 100 Freiwilligen[1] entwickelt. Die Bibliothek unterliegt der GPL-Lizenz, Version 2, es sind jedoch beim Autor auch kommerzielle Lizenzen erhältlich.[2]

Der Fachöffentlichkeit vorgestellt wurde die Bibliothek unter anderem in Vorträgen von Leitners auf dem 8. Internationalen Linux-Kongress 2001[3] und den Chemnitzer Linux-Tagen 2002.[4]

Inhaltsverzeichnis

Funktionsumfang

Eine Standard-C-Bibliothek beinhaltet normalerweise etwa 200 Funktionen, welche von vielen in C geschriebenen Programmen benötigt werden. Die unter Linux normalerweise verwendete glibc geht zum einen deutlich über diesen Funktionsumfang hinaus und besteht darüber aus einigen wenigen größeren Codeblöcken, welche von einem Programm, das auch nur eine dieser Funktionen nutzt, geladen werden müssen.

Die diet libc wurde dagegen von Grund auf neu geschrieben und beschränkt sich auf die wichtigsten Funktionen der Standard-C-Bibliothek, zudem ist der Programmcode auf Geschwindigkeit und geringen Umfang optimiert. Der Name spielt dabei bereits auf die primäre Zielsetzung einer schlanken libc an, was zu einer Größe des Programmpaketes von derzeit knapp 160 kB[5] gegenüber fast 4 MB bei der glibc[6] führt. Die gesamte Bibliothek ist dabei modular aufgebaut, so dass jeweils nur die Funktionen geladen werden müssen, die tatsächlich in dem Programm genutzt werden.[7] Gegenüber der normalen glibc gibt dies einen deutlichen Gewinn an Geschwindigkeit[2] und die Programme werden wesentlich kleiner.[8] Ein vollständiger Ersatz der glibc ist auf Grund des Umfanges dieser bisher noch nicht möglich, wobei jedoch mit jeder neuen Version der diet libc weitere Funktionen zu dieser hinzugefügt werden. Darüber hinaus gibt es eine Reihe von Patches, mit denen insbesondere Kommandozeilenprogramme und Server an die diet libc angepasst werden können.[9][10] Programme müssen für die Verwendung der diet libc zudem generell neu kompiliert werden.

Entwicklungsgeschichte

Die Anfänge der Entwicklung der diet libs sind nur schlecht nachvollziehbar, da die ältesten Versionen undatiert sind; die älteste noch öffentlich zugängliche Version ist die 0.7 vom 16. Januar 2001, die Changelogs reichen bis zu einer Version 0.5.9 zurück.[11] Inzwischen liegt die Bibliothek in der Version 0.32 vor, welche am 29. Mai 2009 erschienen ist.

Verwendung

Verwendung findet die diet libc vor allem für freie Software im Bereich von Embedded Devices[2]. Die GPL erlaubt kein Linken bei proprietären Programmem, daher wird hier die unter der LGPL stehende uClibc bevorzugt. Zudem unterstützt die uClibc noch mehr Architekturen, ist jedoch wie die normale glibc nicht modular. Beide Bibliotheken werden auch von T2 SDE,[12] diet libc zudem von ROCK Linux, unterstützt.[13] Das Toolkit Gtk+[14] ist ebenfalls zu diet libc kompatibel, Qt in der Embedded-Version beinhaltet seit Version 4 Teile dieser selbst, um auf eine zusätzliche Standard-C-Bibliothek verzichten zu können.[15]

Im Gegensatz zu der größeren uClibc kann sie auch für besonders kompakte Linux-Distributionen eingesetzt werden, wie dies beispielsweise im Falle des inzwischen offenbar eingeschlafenen Projektes DietLinux der Fall ist. Auch in den während des Bootvorgangs benutzten initrd- beziehungsweise initramfs-Systemen diverser konventioneller Linux-Distributionen wird diet libc aus Platz- und Geschwindigkeitsgründen verwendet.[7]

Hauptsächlich wird diet libc für statische Linkungen verwendet, also den Fall, in dem die Bibliothek in dem Programm selbst enthalten ist, statt als eine weitere Datei auf dem System vorliegen zu müssen. Hierbei wird durch die Wahl der diet libc, zu einem kleineren Teil aber auch durch die statische Linkung selbst, Speicherplatz gespart.[2] Diese Lösung wird auch vom Autor präferiert, eine dynamische Linkung wird nur unter i386 sowie bei neueren Versionen unter ARM überhaupt unterstützt.

Einzelnachweise

  1. diet libc - credits
  2. a b c d Karim Yaghmour: Building embedded Linux systems. O'Reilly Media, Inc., 2003, S. 139ff
  3. Vortrag vom 28. November 2001
  4. diet libc: eine neue libc für Linux. Vortrag vom 10. März 2003
  5. [1]
  6. Ubuntu - Informationen über Paket libc6 in karmic
  7. a b Zügig abnehmen. Linux-Magazin 2006/07
  8. Some thoughts about codesize
  9. Reihe von Patches, um einige Linux-Programme diet libc-kompatibel zu machen
  10. Ein weiteres Patcharchiv (archive.org-Version, weil Original offensichtlich seit 2005 offline)
  11. diet libc - old news
  12. T2 SDE Embedded
  13. ROCK Linux - Definition from WordiQ
  14. GTK+ on Embedded Devices
  15. Portierung der Bibliothek Qt auf DROPS (Teamprojekt)

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

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

  • Standard C Library — Die Standard C Library ist eine genormte Funktionsbibliothek für die Programmiersprache C, die etwa 200 häufig benötigte Funktionen für Ein und Ausgabe, mathematische Operationen, Verarbeitung von Zeichenketten, Speicherverwaltung und andere… …   Deutsch Wikipedia

  • Firefox — For other uses, see Firefox (disambiguation). Phoenix (web browser) redirects here. For the Phoenix browser based on tkWWW, see tkWWW. Firefox …   Wikipedia

Share the article and excerpts

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