picolibc: Entwickler präsentiert neue C-Bibliothek für Embedded-Systeme
Der langjährige X11-Entwickler Keith Packard hat picolibc 1.0 als neue libc-Implementierung für Embedded-Systeme veröffentlicht.
![Bücher](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/7/5/6/3/0/0/Buecherei3-acd09c3e9014d49e.png)
- Alexander Neumann
Keith Packard, der sich in der Entwicklung Unix-artiger Systeme und vor allem beim X11 Window System einen Namen gemacht hat, hat mit picolibc eine neue C-Bibliothek entwickelt, die nun in Version 1.0 erschienen ist und vor allem für die Entwicklung von Embedded-Systemen gedacht ist. picolibc passt gut zu Packards neuem Arbeitgeber SiFive, bei dem er an Entwicklungswerkzeugen für Embedded-Systeme auf Basis der RISC-V-Architektur arbeitet.
Doch auch zuvor war Packard schon mit der Entwicklung für Kleinstgeräte beschäftigt. In dem Kontext schuf er newlib-nano, den Vorläufer von picolibc. Seine neue libc-Bibliothek ist eine newlib-Implementierung. Anstelle des großen und speicherintensiven stdio-Stacks in newlib wird jedoch der stdio-Teil in picolib aus dem Code von avrlibc abgeleitet, einer Bibliothek für Atmels AVR-Microcontroller. Der Atmel-spezifische Assembler-Code wurde durch C ersetzt und der printf-Code überarbeitet, um die Standardkonformität zu verbessern. Diese Arbeiten hatte Packard wohl schon für newlib-nano durchgeführt, sie seien nun aber viel besser umgesetzt.
Das Umschalten von struct _reent
auf TLS-Variablen für Per-Thread-Werte soll das Arbeiten mit der Bibliothek erheblich vereinfachen und den Speicherverbrauch reduzieren. Auf der RISC-V-Architektur erzeuge das laut Packard immer kompakteren und schnelleren Code. Zusätzlich wird nun das Build-System Meson genutzt, und der Entwickler hat den genommenen Code an vielen Stellen optimiert sowie insbesondere Teile ausgetauscht, die die Lizenzsituation unklar gemacht hätten. Die Bibliothek selbst steht unter der BSD-Lizenz.
Den Code der Bibliothek finden interessierte Entwickler auf GitHub. Weitere Informationen lassen sich in Packards Blog nachlesen. (ane)