Keith Packard, aktivni Debian programer, voditelj X.Org projekta i kreator mnogih X ekstenzija, uključujući XRender, XComposite i XRandR, izdanje standardne C biblioteke , razvijen za korištenje na ugrađenim uređajima s ograničenom količinom trajne pohrane i RAM-a. Tijekom razvoja, dio koda je posuđen iz knjižnice iz Cygwin projekta i , razvijen za Atmel AVR mikrokontrolere. PicoLibc kod pod BSD licencom. Sastavljanje biblioteke podržano je za arhitekture ARM (32-bit), i386, RISC-V, x86_64 i PowerPC.
U početku je projekt razvijen pod nazivom "newlib-nano" i bio je usmjeren na preradu nekih funkcija Newliba koje zahtijevaju velike resurse, a koje je bilo problematično koristiti na ugrađenim uređajima s malo RAM-a. Na primjer, funkcije stdio zamijenjene su kompaktnom verzijom iz knjižnice avrlibc. Kod je također očišćen od komponenti koje nisu licencirane za BSD i koje se ne koriste u ugrađenoj verziji. Dodana je pojednostavljena verzija inicijalizacijskog koda (crt0), a implementacija lokalnih niti premještena je s 'struct _reent' na TLS mehanizam (). Za montažu se koristi alat Meson.
U novom izdanju:
- Dodana je mogućnost izrade pomoću sastavljač .
- Dodana podrška za Clang kompajler.
- Ponašanje funkcije 'gama' usklađeno je s ponašanjem Glibca.
- Implementacija nano-malloc osigurava brisanje vraćene memorije.
- Poboljšana izvedba nano-realloc-a, posebno pri spajanju slobodnih blokova i proširenju veličine hrpe.
- Dodan skup testova za provjeru ispravnog rada malloc-a.
- Poboljšana podrška za Windows platformu i dodana mogućnost izrade pomoću alata mingw.
- Na ARM sustavima, ako je dostupan, TLS (Thread-Local Storage) hardverski registar je omogućen.
Izvor: opennet.ru
