Keith Packard, aktivni razvijač Debiana, vođa projekta X.Org i stvaratelj mnogih X-ekstenzija, uključujući XRender, XComposite i XRandR, izdavanje standardne C biblioteke , koja se razvija za primjenu na ugrađenim uređajima s ograničenim kapacitetom trajne memorije i radne memorije. Tijekom razvoja dio koda preuzet je iz biblioteke iz projekta Cygwin i , koja se razvijala za Atmel AVR mikrocontroller. Kod PicoLibc je pod BSD licencom. Podržava se izrada biblioteke za arhitekture ARM (32-bit), i386, RISC-V, x86_64 i PowerPC.
U početku se projekt razvijao pod imenom «newlib-nano» i bio je usmjeren na obradu nekih resursno intenzivnih funkcija Newlib, koje su bile problematične za korištenje na ugrađenim uređajima s malim RAM-om. Na primjer, funkcije stdio zamijenjene su kompaktnom verzijom iz biblioteke avrlibc. Kod je također očišćen od nepotrebnih komponenti koje nisu bile dostupne pod BSD licencom. Dodana je pojednostavljena verzija inicijalizacijskog koda (crt0), a implementacija lokalnih tokova prevedena je s ‘struct _reent’ na TLS (Thread-Local Storage) mehanizam.Za izgradnju je korišten alat Meson.
U novom izdanju:
- Dodana je opcija izgradnje s kompilatore .
- Dodana je podrška za Clang kompajler.
- Ponašanje funkcije ‘gamma’ usklađeno je s ponašanjem Glibc-a.
- U implementaciji nano-malloc osigurano je obavezno čišćenje vraćenih memorijskih blokova.
- Povećana je učinkovitost nano-realloc-a, posebno prilikom izvođenja operacija spajanja slobodnih blokova i proširenja veličine hrpe.
- Dodana je serija testova za provjeru ispravnosti rada malloc.
- Poboljšana je podrška za Windows platformu i dodana mogućnost izgradnje s alatima mingw.
- Na ARM sustavima, ako je moguće, koristi se hardverski registar TLS (Thread-Local Storage).
Izvor: opennet.ru
