Die diet libc ist Softwarebibliothek für Linux-Betriebssysteme, welche den Funktionsumfang der Standard C Library inplementiert. Sie setzt sich zum Ziel, für Linux kleine statisch gelinkte und effiziente Binärdateien zu erstellen. Die Bibliothek wurde von Felix von Leitner unter Mithilfe von bisher etwas über 100 Freiwilligen[2] entwickelt. Die Bibliothek unterliegt der GPL-Lizenz, Version 2, es sind jedoch beim Autor auch kommerzielle Lizenzen erhältlich.[3]
diet libc | |
---|---|
Basisdaten
| |
Entwickler | Felix von Leitner |
Aktuelle Version | 0.32 (29. Mai 2009) |
Betriebssystem | Linux (Architekturen: x86, ARM, SPARC, Alpha, PowerPC, MIPS, HPPA, S/390) |
Programmiersprache | C[1] |
Kategorie | Standard C Library |
Lizenz | GPLv2 |
deutschsprachig | nein |
diet libc-Homepage |
Der Fachöffentlichkeit vorgestellt wurde die Bibliothek unter anderem in Vorträgen von Leitners auf dem 8. Internationalen Linux-Kongress[4] und den Chemnitzer Linux-Tagen 2002.[5]
Funktionsumfang
Eine Standard C Library beinhaltet normalerweise etwa 200 Funktionen, welche von vielen C-Programmen benötigt werden. Die unter Linux normalerweise übliche glibc geht zum einen deutlich über diesen Funktionsumfang hinaus und besteht darüber aus einigen wenigen größeren Codeblöcken, welche von einem Programm, dass 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 Library, zudem ist der Programmcode auf Geschwindigkeit und geringen Umfang optimiert. 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.[6] Gegenüber der normalen glibc gibt dies einen deutlichen Gewinn an Geschwindigkeit[3] und die Programme werden wesentlich kleiner.[7] 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.[8][9]
Verwendung
Da eine Vielzahl von Architekturen unterstützt wird, findet die diet libc hauptsächlich Verwendung in Embedded Devices. Im Gegensatz etwa zu der funktional stark eingeschränkten uClibc kann sie aber auch für besonders kompakte Linux-Distributionen eingesetzt werden, wie dies im Falle des Projektes DietLinux der Fall ist. Auch in den Init-Systemen diverser konventioneller Distributionen wird diet libc aus Platz- und Geschwindigkeitsgründen verwendet.[6]
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.[3]
Einzelnachweise
- ↑ www.openhub.net.
- ↑ diet libc - credits
- ↑ a b c Karim Yaghmour: Building embedded Linux systems. O'Reilly Media, Inc., 2003, S. 139ff
- ↑ Vortrag vom 28. November 2001
- ↑ diet libc: eine neue libc für Linux. Vortrag vom 10. März 2003
- ↑ a b Zügig abnehmen. Linux-Magazin 2006/07
- ↑ Some thoughts about codesize
- ↑ Reihe von Patches, um einige Linux-Programme diet libc-kompatibel zu machen
- ↑ Ein weiteres Patcharchiv (archive.org-Version, weil Original offensichtlich seit 2005 offline)