Standard C-biblioteek PicoLibc 1.1 beskikbaar

Keith Packard, aktiewe Debian-ontwikkelaar, leier van die X.Org-projek en skepper van baie X-uitbreidings, insluitend XRender, XComposite en XRandR, voorgelê vrystelling van 'n nuwe standaard C-biblioteek PicoLibc 1.1, ontwikkel vir gebruik op ingebedde toestelle met beperkte permanente berging en RAM. Tydens ontwikkeling is 'n deel van die kode by die biblioteek geleen nuwe lib van die Cygwin-projek en AVR Libc, ontwikkel vir Atmel AVR mikrobeheerders. PicoLibc-kode versprei deur onder BSD-lisensie. Biblioteeksamestelling word ondersteun vir ARM (32-bis), i386, RISC-V, x86_64 en PowerPC argitekture.

Keith Packard het met ontwikkeling begin nadat hy nie 'n ordentlike Libc-opsie kon vind wat op ingeboude toestelle met min RAM gebruik kan word nie. Die projek ontwikkel sedert verlede jaar. In die eerste stadium was die projek 'n variant van newlib, die funksies van stdio waarin vervang is met 'n kompakte weergawe van avrlibc (stdio in newlib was nie geskik vir sy hoë hulpbronverbruik nie). Aangesien Keith se huidige werk deurlopende werk met die RISC-V-argitektuur en ontwikkeling van gereedskap vir ingebedde toestelle behels, het hy onlangs die stand van libc-implementerings hersien en tot die gevolgtrekking gekom dat met 'n bietjie aanpassing, die kombinasie van newlib en avrlibc 'n goeie algemene doel kan wees oplossing. Aanvanklik het die projek onder die naam “newlib-nano” ontwikkel, maar om verwarring met die Newlib-biblioteek te voorkom, is dit herdoop na PicoLibc.

In sy huidige vorm het Picolibc reeds werk gedoen om alle kode te verwyder wat nie onder 'n BSD-lisensie verskaf word nie (hierdie kode is nie gebruik tydens die bou van ingebedde toestelle nie), wat die situasie met die lisensie vir die projek aansienlik vereenvoudig het. Die implementering van plaaslike strome is verskuif van 'struct _reent' na die TLS-meganisme (draad-plaaslike berging). Die kompakte weergawe van stdio, geleen van die avrlibc-biblioteekkode, word by verstek geaktiveer (ATmel-spesifieke samesteller-insetsels word in C herskryf). Die Meson-gereedskapstel is vir samestelling gebruik, wat dit moontlik gemaak het om nie aan newlib-samestellingskrifte gekoppel te word nie en om die oordrag van veranderinge vanaf newlib te vereenvoudig. Het 'n vereenvoudigde weergawe van die inisialiseringskode (crt0) bygevoeg, aan die uitvoerbare lêer geheg en uitgevoer voordat beheer na die hoof()-funksie oorgedra word.

In Picolibc weergawe 1.1:

  • Bygevoeg hulpbiblioteek om die tegnologie te ondersteun "semihosting"laat kode wat in 'n ontfouter- of emulatoromgewing loop, toe om die gasheerstelsel se I/O-meganismes te gebruik;
  • Vir stelsels wat die oop-, toe-, lees- en skryfstelseloproepe ondersteun, voeg tinystdio gestandaardiseerde POSIX stdio I/O-koppelvlakke by, insluitend die fopen- en fdopen-funksies, sowel as om stdin/stdout/stderr aan POSIX-gedefinieerde lêerbeskrywers te bind;
  • Onlangse veranderinge vanaf die newlib-kodebasis is oorgedra. Insluitend bygevoeg libm stompe vir fenv.h, wat gebruik kan word op stelsels sonder drywende punt ondersteuning;
  • Bygevoeg 'n voorbeeld van die bou van die "Hello world" toepassing met picolibc vir ARM en RISC-V stelsels;
  • Verwyder die newlib-, libm- en mathfp-gidse, wat ongebruikte eksperimentele kode bevat.

Bron: opennet.ru

Voeg 'n opmerking