Standardne C teek PicoLibc 1.1 on saadaval

Keith Packard, aktiivne arendaja Debian, X.Org projekti juht ja paljude X-i laienduste, sealhulgas XRenderi, XComposite'i ja XRandRi looja, tutvustatud uue standardse C-teegi vĂ€ljalase PicoLibc 1.1, mis on vĂ€lja töötatud piiratud pĂŒsiva salvestusruumi ja muutmĂ€luga manussĂŒsteemides kasutamiseks. Arenduse kĂ€igus laenati osa koodi teegist uuslib Cygwini projektist ja AVR Libc, arendatud Atmel AVR mikrokontrollerite jaoks. PicoLibc kood jaotatud BSD litsentsi alusel. Teekide loomine on toetatud ARM (32-bitine), i386, RISC-V, x86_64 ja PowerPC arhitektuuride puhul.

Keith Packard alustas libc teeki arendamist pĂ€rast seda, kui tal ei Ă”nnestunud leida sobivat Libc implementatsiooni piiratud muutmĂ€luga manussĂŒsteemidele. Projekt on olnud arenduses alates eelmisest aastast. Algselt oli see newlibi variant, mis asendas stdio funktsioonid avrlibci kompaktse versiooniga (newlibi stdio oli ressursitarbimise tĂ”ttu ebarahuldav). Kuna Keithi praegune töö hĂ”lmab pidevat tööd RISC-V arhitektuuriga ja manussĂŒsteemide tööriistakettide vĂ€ljatöötamist, vaatas ta hiljuti ĂŒle libc implementatsioonide olukorra ja jĂ”udis jĂ€reldusele, et mĂ”ningase tĂ€psustamisega vĂ”iks newlibi ja avrlibci kombinatsioon saada heaks universaalseks lahenduseks. Projekti arendati algselt nime "newlib-nano" all, kuid segiajamise vĂ€ltimiseks Newlibi teegiga nimetati see ĂŒmber PicoLibciks.

Praegusel kujul on Picolibc-st juba eemaldatud kogu BSD-litsentsita kood (seda koodi ei kasutatud manussĂŒsteemide versioonis), mis lihtsustab oluliselt projekti litsentsimise olukorda. Kohalike lĂ”imede rakendamine on migreeritud 'struct _reent'-ist TLS-mehhanismi (lĂ”imede kohalik salvestusruum). Kompaktne stdio variant, mis on laenatud avrlibc teegi koodist, on vaikimisi lubatud (ATmel-spetsiifiline assemblerkood on ĂŒmber kirjutatud C-keeles). Ehitamiseks kasutatakse Mesoni tööriistaketti, mis vĂ€listab vajaduse sĂ”ltuvuse jĂ€rele newlib ehitusskriptidest ja lihtsustab muudatuste migreerimist newlibist. Lisatud on lihtsustatud initsialiseerimiskood (crt0), mis on seotud kĂ€ivitatava failiga ja kĂ€ivitatakse enne juhtimise ĂŒleandmist main() funktsioonile.

Picolibc versioonis 1.1:

  • Lisatud abiteek, et toetada "tehnoloogiat"poolhosting", mis vĂ”imaldab siluri- vĂ”i emulaatorikeskkonnas töötaval koodil kasutada hostisĂŒsteemi I/O mehhanisme;
  • SĂŒsteemide jaoks, mis toetavad sĂŒsteemikĂ”nesid avamine, sulgemine, lugemine ja kirjutamine, lisab tinystdio standardiseeritud POSIX stdio I/O liidesed, sealhulgas funktsioonid fopen ja fdopen, ning seob stdin/stdout/stderr POSIX-i mÀÀratletud failikirjeldustega;
  • Hiljutised muudatused newlib koodibaasist on portitud. See hĂ”lmab libm-i tĂŒvede lisamist jĂ€rgmistele: fenv.h, mida saab kasutada sĂŒsteemides, millel puudub ujukomaarvude tugi;
  • Lisatud nĂ€ide "Hello world" rakenduse loomisest picolibc abil ARM ja RISC-V sĂŒsteemidele;
  • Eemaldati kataloogid newlib, libm ja mathfp, mis sisaldasid kasutamata eksperimentaalset koodi.

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster