Keith Packard, actieve ontwikkelaar van Debian, projectleider van X.Org en maker van vele X-extensies zoals XRender, XComposite en XRandR, uitgave van de standaard C-bibliotheek , ontwikkeld voor gebruik op embedded systemen met beperkte permanente opslagcapaciteit en RAM. Tijdens de ontwikkeling is een deel van de code overgenomen uit de bibliotheek van het Cygwin-project en , dat ontwikkeld werd voor Atmel AVR microcontrollers. De code van PicoLibc is onder de BSD-licentie. Er wordt een bouw van de bibliotheek ondersteund voor de architecturen ARM (32-bit), i386, RISC-V, x86_64 en PowerPC.
Aanvankelijk werd het project ontwikkeld onder de naam "newlib-nano" en was gericht op het herzien van enkele hulpbronnenintensieve functies van Newlib, die moeilijk te gebruiken waren op embedded systemen met weinig RAM. Bijvoorbeeld, de stdio-functies zijn vervangen door een compacte versie uit de avrlibc-bibliotheek. De code is ook opgeschoond van ongebruikte componenten in de bouw voor embedded systemen, die niet onder de BSD-licentie vallen. Een vereenvoudigde versie van de initialisatiecode (crt0) is toegevoegd, terwijl de implementatie van lokale threads is aangepast van ‘struct _reent’ naar het TLS-mechanisme (). De Meson-toolchain is gebruikt voor de bouw.
In de nieuwe release:
- De mogelijkheid om te bouwen met behulp van compiler .
- is toegevoegd. Ondersteuning voor de Clang-compiler is toegevoegd.
- Het gedrag van de functie ‘gamma’ is in overeenstemming gebracht met het gedrag van Glibc.
- In de implementatie van nano-malloc is een verplichte reiniging van het teruggegeven geheugen gegarandeerd.
- De prestaties van nano-realloc zijn verbeterd, vooral bij het samenvoegen van vrije blokken en het uitbreiden van de heapgrootte.
- Een set tests is toegevoegd om de correctheid van malloc te controleren.
- Verbeterde ondersteuning voor het Windows-platform en de mogelijkheid om te bouwen met behulp van de mingw-toolchain is toegevoegd.
- Op ARM-systemen wordt de hardware TLS-register (Thread-Local Storage) gebruikt indien beschikbaar.
Bron: opennet.ru
