Biblioteka standarde C PicoLibc 1.1 është e disponueshme

Keith Packard, zhvillues aktiv i Debian, lider i projektit X.Org dhe krijues i shumë zgjerimeve X, përfshirë XRender, XComposite dhe XRandR, paraqiti lëshimi i bibliotekës standarde të re C PicoLibc 1.1, 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 newlib nga projekti Cygwin dhe AVR Libc, e zhvilluar për mikro-kontrollerët Atmel AVR. Kodi i PicoLibc shpërndahet ë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 (ruajtjes lokale të thread-eve). 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ë 'semihosting«, 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 fenv.h, 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

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster