Keith Packard, aktiivne Debian'i arendaja, X.Org projekti juht ja paljude X-laienduste, sealhulgas XRender, XComposite ja XRandR looja, uueks standardseks C-raamatukogu väljaanne , mida arendatakse rakendamiseks sisseehitatud seadmetes, millel on piiratud püsiväli ja juhtmälule. Arendamise käigus on osa koodist laenatud teegist projekti Cygwin'ist ja , mis on arendatud Atmeli AVR mikrokontrolleritele. PicoLibci kood on BSD litsentsi all. Teegi toimetamine toetab arhitektuure ARM (32-bit), i386, RISC-V, x86_64 ja PowerPC.
Kit Packard alustas arendustööd pärast seda, kui ta ei leidnud sobivat versiooni Libc, mida oleks võimalik kasutada väikese RAM-iga integreeritud seadmetes. Projekt on arenenud alates eelmisest aastast. Esialgu oli projekt variant newlib'ist, kus stdio funktsioonid asendati avrlibc kompaktse versiooniga (newlib'i stdio ei sobinud suure ressursitarbimise tõttu). Kuna Kiti praegune tegevus on konstantne töö RISC-V arhitektuuriga ja tööriistade arendamine integreeritud seadmetele, on ta hiljuti üle vaadanud libc rakenduste seisundi ja järeldanud, et väikese täiendusega newlib ja avrlibc kombinatsioon võivad olla head universaalsed lahendused. Alguses arenes projekt nime all "newlib-nano", kuid segaduse vältimiseks Newlib raamatukoguga nimetati see ümber PicoLibc-ks.
Praeguses seisus on Picolibc's juba tehtud tööd BSD litsentsi alla mitte kuuluvate koodide eemaldamiseks (see kood ei olnud kasutusel integreeritud seadmete ehitamisel), mis on oluliselt lihtsustanud projekti litsentsitingimusi. Kohalikud vood on viidud 'struct _reent' struktuurilt TLS mehhanismi (). Compact stdio versioon, mis on laenatud avrlibc koodi, on vaikimisi aktiveeritud (ATmel spetsiifilised assembleri sisendid on kirjutatud ümber C keeles). Ehituses on kasutatud Meson tööriistu, mis võimaldas mitte siduda newlib'i ehitusstsenaariume ning lihtsustada muudatuste ülekandmist newlib'ist. Lisatud on lihtsustatud initsialiseerimise koodi variant (crt0), mis on kinnitatud täidetavale failile ja mille täitmine toimub enne peamise funktsiooni main() juhtimise üleandmist.
Picolibc 1.1 versioonis:
- Lisatud abiraamat koko jaoks „«, mis võimaldab debugeerija või emulaatori keskkonnas töötaval koodil kasutada host-süsteemi sisendi/väljundi mehhanisme;
- Süsteemide jaoks, mis toetavad open, close, read ja write süsteemi kõnesid, on tinystdio'sse lisatud standardiseeritud POSIX-i stdio sisendi/väljundi liidesed, sealhulgas fopen ja fdopen funktsioonid, samuti stdin/out/err sidumine POSIX-failidesse;
- Viimased muudatused on viidud üle newlib koodibaasi. Sealhulgas on lisatud libm paikapidavad , mida saab kasutada süsteemides, mis ei toeta ujuvpunkte;
- Lisatud rakenduse "Tere maailm" näide picolibc-ga ARM ja RISC-V süsteemidele;
- Eemaldatud kataloogid newlib, libm ja mathfp, milles sisaldus kasutamata eksperimenteeritud kood.
Allikas: opennet.ru
