Keith Packard, zhvillues aktiv i Debian, lider i projektit X.Org dhe krijues i disa zgjerimeve X, duke përfshirë XRender, XComposite dhe XRandR, lëshimi i bibliotekës standard C të re , e zhvilluar për t'u përdorur në pajisje të embeduara me kapacitet të kufizuar ruajtjeje të përhershme dhe memorie të përkohshme. Gjatë zhvillimit, një pjesë e kodit është marrë nga biblioteka nga projekti Cygwin dhe , e zhvilluar për mikrocontrolerët Atmel AVR. Kodi i PicoLibc ka një licencë BSD. Mbështetet ndërtimi i bibliotekës për arkitekturat ARM (32-bit), i386, RISC-V, x86_64 dhe PowerPC.
Kiti Packard filloi zhvillimin pasi nuk arriti të gjente një variant të denjë Libc për përdorim në pajisje të integruara me RAM të vogël. Projekti është duke u zhvilluar që nga viti i kaluar. Faza e parë e projektit ishte një variant i newlib, ku funksionet stdio u zëvendësuan me një variant të kompakt nga avrlibc (stdio në newlib nuk ishte i kënaqshëm për konsumimin e madh të burimeve). Duke qenë se aktiviteti aktual i Kitit është i lidhur me punën e vazhdueshme me arkitekturën RISC-V dhe zhvillimin e mjeteve për pajisje të integruara, ai kohët e fundit rishikoi gjendjen e zbatimeve libc dhe arriti në përfundimin se me pak punë, kombinimi i newlib dhe avrlibc mund të bëhet një zgjidhje e mirë universale. Fillimisht projekti u zhvillua nën emrin 'newlib-nano', por për të shmangur ngatërrimin me bibliotekën Newlib, ai u rishikua në PicoLibc.
NĂ« formĂ«n aktuale, nĂ« Picolibc Ă«shtĂ« bĂ«rĂ« punĂ« pĂ«r tĂ« hequr tĂ« gjithĂ« kodin qĂ« nuk ofrohet nĂ«n licencĂ«n BSD (ky kod nuk u pĂ«rdor gjatĂ« krijimit pĂ«r pajisje tĂ« integruara), e cila ndihmoi nĂ« thjeshtimin e situatĂ«s me licencĂ«n e projektit. Zbatimi i rrjedhave lokale Ă«shtĂ« konvertuar nga âstruct _reentâ nĂ« mekanizmin TLS (). Versioni i kompakt i stdio, i marrĂ« nga kodi i bibliotekĂ«s avrlibc, Ă«shtĂ« aktivizuar si parazgjedhje (inserimet e ndryshimeve tĂ« veçanta pĂ«r ATmel janĂ« rishkruar nĂ« C). PĂ«r ndĂ«rtimin Ă«shtĂ« pĂ«rdorur mjetet Meson, çka lehtĂ«soi lidhjen me skenarĂ«t e ndĂ«rtimit tĂ« newlib dhe e thjeshtoi transferimin e ndryshimeve nga newlib. ĂshtĂ« shtuar njĂ« variant i thjeshtuar i kodit tĂ« inicializimit (crt0), i cili Ă«shtĂ« bashkangjitur me skedarin ekzekutues dhe ekzekutohet para se tĂ« kalojĂ« drejt funksionit main().
NĂ« versionin Picolibc 1.1:
- ĂshtĂ« shtuar njĂ« bibliotekĂ« ndihmĂ«se pĂ«r mbĂ«shtetje tĂ« teknologjisĂ« '' qĂ« lejon kodin qĂ« ekzekutohet nĂ« njĂ« ambient debuguese apo emuluese tĂ« pĂ«rdorĂ« mekanizmat e hyrjes/daljes tĂ« sistemit mikpritĂ«s;
- Për sistemet që mbështesin thirrjet sistemore open, close, read dhe write, në tinystdio janë shtuar ndërfaqet standardizuara POSIX për hyrje/dalje stdio, duke përfshirë funksionet fopen dhe fdopen, si dhe lidhjen e stdin/stdout/stderr me deshifrantët e skedarëve të përcaktuar në POSIX;
- Janë transferuar ndryshimet e fundit nga baza e kodit newlib. Në të përfshihen shtesat libm për , të cilat mund të përdoren në sisteme pa mbështetje për llogaritje me pikë të lëvizshme;
- ĂshtĂ« shtuar njĂ« shembull ndĂ«rtimi i aplikacionit 'Hello world' me picolibc pĂ«r sistemet ARM dhe RISC-V;
- Janë hequr katalogët newlib, libm dhe mathfp, të cilat përmbanin kod eksperimental që nuk përdorej.
Burimi: opennet.ru
