Keith Packard, zhvillues aktiv i Debian, lider i projektit X.Org dhe krijues i shumë zgjerimeve X, përfshirë XRender, XComposite dhe XRandR, lëshimi i bibliotekës standarde të re C , e cila po zhvillohet për përdorim në pajisje të integruara me hapësirë të kufizuar ruajtjeje dhe memorie të përkohshme. Gjatë zhvillimit, një pjesë e kodit u mor nga biblioteka nga projekti Cygwin dhe , e zhvilluar për mikro-kontrollerët Atmel AVR. Kodi i PicoLibc është nën licencën BSD. Mbështetet ndërtimi i bibliotekës për arkitekturat ARM (32-bit), i386, RISC-V, x86_64 dhe PowerPC.
Keith Packard filloi zhvillimin pasi nuk mundi të gjejë një variant të denjës Libc, që mund të përdorej në pajisje të integruara me RAM të vogël. Projekti po zhvillohet që nga viti i kaluar. Në fazën e parë, projekti përbënte një variant të newlib, në të cilin funksionet stdio u zëvendësuan me një variant kompakt nga avrlibc (stdio në newlib nuk e përmbushte kërkesat për përdorimin e burimeve). Pasi aktiviteti aktual i Keith është i lidhur me punën e vazhdueshme me arkitekturën RISC-V dhe zhvillimin e mjeteve për pajisje të integruara, ai rishtazi shqyrtoi gjendjen e realizimeve të libc dhe arriti në përfundimin se me disa përmirësime, 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 konfuzionin me bibliotekën Newlib, u riemërua në PicoLibc.
NĂ« formĂ«n aktuale, nĂ« Picolibc Ă«shtĂ« pĂ«rfunduar puna pĂ«r tĂ« hequr tĂ« gjithĂ« kodin qĂ« nuk ofrohet nĂ«n licencĂ«n BSD (ky kod nuk u pĂ«rdor gjatĂ« ndĂ«rtimit pĂ«r pajisje tĂ« integruara), çka e thjeshtoi ndjeshĂ«m situatĂ«n me licencĂ«n e projektit. Implementimi i rrjedhave lokale Ă«shtĂ« kaluar nga 'struct _reent' nĂ« mekanizmin TLS (). Aktivizimi nga e drejta Ă«shtĂ« bĂ«rĂ« me variantin e kompakt tĂ« stdio, i marrĂ« nga kodi i bibliotekĂ«s avrlibc (tĂ« gjitha pĂ«rforcimet nĂ« assembler specifike pĂ«r ATmel janĂ« ripershtatur nĂ« C). PĂ«r ndĂ«rtimin Ă«shtĂ« pĂ«rdorur mjeti Meson, i cili lejon tĂ« mos lidhet me skenarĂ«t e ndĂ«rtimit tĂ« newlib dhe tĂ« thjeshtojĂ« transferimin e ndryshimeve nga newlib. ĂshtĂ« shtuar njĂ« variant i thjeshtuar i kodit tĂ« inicializimit (crt0), i lidhur me skedarin ekzekutiv dhe i kryer pĂ«rpara se t'i kalojĂ« kontrollin funksionit main().
NĂ« versionin Picolibc 1.1:
- Shtuar një bibliotekë ndihmëse për të mbështetur teknologjinë '«, e cila i lejon kodit, që ekzekutohet në një mjedis debuguese ose emulatori, të përdorë mekanizmat e hyrjes/daljes të sistemit host;
- Për sistemet që mbështesin thirrjet sistemore open, close, read dhe write, në tinystdio janë shtuar interface të standardizuara të hyrjes/daljes POSIX, përfshirë funksionet fopen dhe fdopen, si dhe lidhja stdin/stdout/stderr me deshifikues të caktuar në POSIX;
- Janë transferuar ndryshimet e fundit nga baza e kodit newlib. Ndër to janë shtuar stubs libm për , që mund të përdoren në sisteme pa mbështetje për llogaritje me numra me pikë floating;
- Shtuar njĂ« shembull build i aplikacionit âHello worldâ me picolibc pĂ«r sistemet ARM dhe RISC-V;
- Janë hequr katalogët newlib, libm dhe mathfp, ku ndodhej kodi eksperimental i pa përdorur.
Burimi: opennet.ru
