Keith Packard je aktívny vývojár Debianu a je to tiež Vedúci projektu X.Org a aj tvorca mnohých rozšírení X., vrátane XRender, XComposite a XRandR. PicoLibc je ďalším z jeho diel a toto je knižnica C. ktorý je vyvinutý na použitie vo vložených zariadeniach s obmedzenými zdrojmi (to znamená, že majú málo pevného úložného priestoru a RAM). Počas vývoja bola časť kódu vypožičaná z knižnice newlib projektu Cygwin a AVR Libc, ktorá bola vyvinutá pre mikrokontroléry Atmel AVR.
Keith Packard začal vývoj po tom, čo nemohol nájsť slušnú verziu Libc, ktorá by sa dala použiť na zariadeniach s nízkou pamäťou RAM. Projekt sa rozvíja od minulého roku. V prvej etape projekt bol variantom newlib, v ktorom boli funkcie stdio nahradené kompaktnou verziou avrlibc (stdio v newlib nebol prispôsobený veľkej spotrebe zdrojov).
Keďže súčasné čínske aktivity súvisia s pokračujúcou prácou na architektúre RISC-V a vývojom nástrojov pre vstavané zariadenia, nedávno skontroloval stav implementácií libc y uzavrel čoho, s trochou vylepšenia môže byť kombinácia newlib a avrlibc dobrým univerzálnym riešením. Pôvodne bol projekt vyvinutý pod názvom „newlib-nano“, ale aby nedošlo k zámene s knižnicou Newlib, bol premenovaný na PicoLibc.
O spoločnosti PicoLibc
V súčasnej podobe Picolibc už vykonal prácu na odstránení všetkého kódu, ktorý nie je uvedený v licencii BSD (Tento kód nebol použitý v zostave pre vložené zariadenia), čo výrazne zjednodušilo situáciu s licenciou na projekt.
Lokálna implementácia vlákna bola presunutá z mechanizmu „struct _reent“ do mechanizmu TLS (Thread Local Storage). Kompaktná verzia stdio je predvolene povolená, prevzatá z kódu knižnice avrlibc (ATmel-špecifické vložky assembleru sú prepísané v C).
Nástroje Na kompiláciu sa používajú mezóny, čo umožňuje neprikladať skripty newlib a zjednodušuje prenos zmien z newlib. Bola pridaná zjednodušená verzia inicializačného kódu (crt0), ktorá je pripojená k spustiteľnému súboru a je vykonaná pred prenosom ovládacieho prvku do funkcie main ().
Zdrojový kód PicoLibc je distribuovaný pod licenciou BSD a Knižnica podporuje architektúry ARM (32-bit), i386, RISC-V, x86_64 a PowerPC.
O novej verzii PicoLibc 1.1
Nedávno som predstavil vydanie novej verzie PicoLibc 1.1, v ktorej bola pridaná pomocná knižnica na podporu technológie semi-hostingu, A, ktorý umožňuje kódu bežiacemu v prostredí debuggera alebo emulátora používať vstupné / výstupné mechanizmy z hostiteľského systému.
Pre systémy, ktoré podporujú otváranie, zatváranie, čítanie a zápis systémových hovorov, tinystdio pridáva štandardizované POSIX I / O rozhrania, vrátane funkcií fopen a fdopen, ako aj väzba stdin / stdout / stderr na deskriptory súborov definované POSIX.
- Posledné zmeny boli prenesené z kódovej základne newlib. Vrátane ďalších úponov libm pre fenv.h, ktoré je možné použiť v systémoch bez podpory výpočtov.
- Pridaný príklad kompilácie aplikácií Hello World s picolibc pre systémy ARM a RISC-V, okrem odstránenia adresárov newlib, libm a mathfp, ktoré obsahovali nepoužitý experimentálny kód.
Začnite používať Picolibc
Ak chcete začať s programom Picolibc, mali by ste vedieť, že program Picolibc využíva systém zostavovania meson na kompiláciu pre rôzne hardvérové platformy na hostiteľovi systému Linux pomocou GCC. Preto musia mať mezon ako súčasť vývojového prostredia a navyše musia mať nainštalovaný Python 3 a Ninja. Môžete sa obrátiť na jeho sprievodcu Na nasledujúcom odkaze.
Nakoniec, aby ste získali kód Picolibc, môžete to urobiť z nasledujúceho odkazu, kde nájdete potrebnú dokumentáciu.
Alebo rovnakým spôsobom môžu konzultovať nasledujúci návod, ktorý som našiel na nete a má podrobné informácie.