PicoLibc 1.1 Standard C Bibliothéik verfügbar

Keith Packard, aktiven Debian Entwéckler, Leader vum X.Org Projet a Schëpfer vu ville X Extensiounen, dorënner XRender, XComposite an XRandR, agefouert Verëffentlechung vun enger neier Standard C Bibliothéik PicoLibc 1.1, entwéckelt fir ze benotzen op embedded Geräter mat limitéierter permanenter Späichere a RAM. Wärend der Entwécklung gouf en Deel vum Code aus der Bibliothéik geléint neilib vum Cygwin Projet an AVR Libc, entwéckelt fir Atmel AVR Mikrokontroller. PicoLibc Code verdeelt duerch ënner BSD Lizenz. Bibliothéik Assemblée gëtt fir ARM (32-Bit), i386, RISC-V, x86_64 an PowerPC Architekturen ënnerstëtzt.

De Keith Packard huet d'Entwécklung ugefaang nodeems hien net konnt eng anstänneg Libc Optioun fannen déi op embedded Geräter mat wéineg RAM benotzt ka ginn. De Projet ass zënter dem leschte Joer entwéckelt. Op der éischter Etapp war de Projet eng Variant vun newlib, d'Funktioune vun stdio an deem duerch eng kompakt Versioun vun avrlibc ersat goufen (stdio an newlib war net gëeegent fir seng héich Ressource Konsum). Zënter dem Keith seng aktuell Aarbecht involvéiert eng lafend Aarbecht mat der RISC-V Architektur an der Entwécklung vun Tooling fir embedded Geräter, huet hien viru kuerzem den Zoustand vun den libc Implementatiounen iwwerpréift an ofgeschloss datt mat e bëssen Tweaking d'Kombinatioun vun newlib an avrlibc e gudden allgemengen Zweck kéint sinn. Léisung. Am Ufank gouf de Projet ënner dem Numm "newlib-nano" entwéckelt, awer fir Duercherneen mat der Newlib-Bibliothéik ze vermeiden, gouf en ëmbenannt PicoLibc.

A senger aktueller Form huet Picolibc scho geschafft fir all Code ze läschen deen net ënner enger BSD Lizenz geliwwert gëtt (dëse Code gouf net benotzt beim Bauen fir embedded Geräter), wat d'Situatioun mat der Lizenz fir de Projet wesentlech vereinfacht huet. D'Ëmsetzung vu lokale Streame gouf vum 'struct _reent' an den TLS Mechanismus (thread-lokal Stockage). Déi kompakt Versioun vum stdio, aus dem avrlibc-Bibliothéikscode geléint, gëtt als Standard aktivéiert (ATmel-spezifesch Assembler-Inserts ginn an C nei geschriwwe). De Meson Toolkit gouf fir d'Assemblée benotzt, wat et méiglech gemaach huet net un Newlib Assemblée Scripte gebonne ze ginn an den Transfer vun Ännerungen aus newlib ze vereinfachen. Eng vereinfacht Versioun vum Initialiséierungscode (crt0) bäigefüügt, un der ausführbarer Datei befestegt an ausgefouert ier d'Kontroll op d'Haaptfunktioun () transferéiert gëtt.

An der Picolibc Versioun 1.1:

  • Auxiliary Bibliothéik bäigefüügt fir d'Technologie z'ënnerstëtzen "semihosting"erlaabt Code, déi an engem Debugger- oder Emulator-Ëmfeld leeft, d'I/O-Mechanismen vum Hostsystem ze benotzen;
  • Fir Systemer déi den oppenen, zoumaachen, liesen a schreiwen System Uruff ënnerstëtzen, füügt tinystdio standardiséierte POSIX stdio I / O Interfaces un, dorënner d'Fopen a fdopen Funktiounen, wéi och d'Bindung stdin / stdout / stderr op POSIX-definéiert Dateideskriptoren;
  • Rezent Ännerungen vun der newlib Codebase goufen iwwerdroen. Inklusiv dobäi libm stubs fir fenv.h, déi op Systemer ouni Floating-Point Support benotzt kënne ginn;
  • E Beispill bäigefüügt fir d'"Hallo Welt" Applikatioun mat picolibc fir ARM a RISC-V Systemer ze bauen;
  • Ewechzehuelen der newlib, libm an mathfp Verzeechnes, déi net benotzt experimentell Code enthalen.

Source: opennet.ru

Setzt e Commentaire