Login
Login-Name Passwort


 
Newsletter
Werbung

Fr, 21. März 2014, 09:25

Software::Entwicklung

Alternative C-Bibliothek musl erreicht Version 1.0

Nach mehreren Jahren Entwicklung ist die C-Standardbibliothek musl jetzt in Version 1.0 verfügbar. Sie ist deutlich kleiner als glibc, in vieler Hinsicht mit uclibc vergleichbar und soll hauptsächlich in eingebetteten Systemen zum Einsatz kommen.

Mirko Lindner

musl ist eine neue unabhängige Implementation der C-Standardbibliothek für Linux-basierte Systeme. Sie ist schlank, schnell, einfach, frei, standardkonform und sicher. Ein wesentliches Argument für musl ist nach Ansicht ihrer Entwickler die Lizenz, die auch die Verwendung in proprietärer Software erlaubt. Während andere freie C-Bibliotheken wie uclibc und glibc unter der LGPL stehen und damit zwar das dynamische, nicht aber das statische Linken mit proprietärer Software gestatten, wurde musl unter die MIT-Lizenz gestellt, um Unternehmen besonders im Bereich eingebetteter Systeme entgegenzukommen. Denn diese wollen gelegentlich ihre Software statisch linken, was musl ermöglicht. Die damit erzeugten Programme können mitunter sehr klein sein, was in eingebetteten Systemen eine Rolle spielen kann.

Mit den mitgelieferten Werkzeugen von musl wie dem »musl-gcc wrapper« soll es kein Problem sein, Programme mit musl statt der System-Standardbibliothek zu compilieren. Damit wird es möglich, die Bibliothek unmittelbar zu evaluieren und kompakte statisch gelinkte Programme zu erstellen.

musl ist ausschließlich für Linux-Systeme gedacht und zur Zeit auf die Architekturen x86, x86_64, ARM, MIPS, Microblaze und PowerPC portiert. Experimentelle Portierungen existieren für das x86_64 x32 ABI und SuperH. Damit ist musl bisher weniger portabel als andere C-Laufzeitbibliotheken, selbst im Vergleich zur GPLv2-lizenzierten Dietlibc. uclibc hat zudem noch den Vorteil, dass sie auch auf Microcontrollern ohne Speicherverwaltungseinheit lauffähig ist.

Davon abgesehen weist musl aber im Vergleich mit anderen Implementierungen wenig Einschränkungen auf. Sie enthält nach der eher langsamen und eingeschränkten Dietlibc vielfach den kleinsten Code und kann bei der Geschwindigkeit mit den anderen mithalten. Sie reagiert zuverlässig auf Fehlersituationen, bei denen die Ressourcen erschöpft sind, was im eingebetteten Bereich eher vorkommen kann als auf Desktopsystemen. Ein vom Hauptentwickler Rich Felker vorgenommener Vergleich lässt musl in vielen Punkten am besten abschneiden, was auch daran liegen könnte, dass musl von Anfang an mit moderneren Algorithmen ausgestattet und auf aktuelle Linux-APIs ausgerichtet werden konnte. Der Vergleich ist bereits zwei Jahre alt, was die mittlerweile wieder mit eglibc vereinigte glibc möglicherweise schlechter abschneiden lässt, als es heute der Fall wäre. Noch nicht berücksichtigt wurde die Bionic-Bibliothek von Android, die ebenfalls unter einer liberalen Lizenz (Apache 2.0) steht.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung