Pirtûkxaneya Standard C PicoLibc 1.1 heye

Keith Packard, pêşdebirê çalak Debian, serokê projeya X.Org û afirînerê gelek pêvekên X, di nav de XRender, XComposite, û XRandR, danasîn serbestberdana pirtûkxaneyek nû ya standard C PicoLibc 1.1, ji bo karanîna li ser cîhazên bicîbûyî yên bi hilanîna domdar û RAM-a tixûbdar ve hatî pêşve xistin. Di dema pêşveçûnê de, beşek kodê ji pirtûkxaneyê hate deyn kirin newlib ji projeya Cygwin û AVR Libc, ji bo mîkrokontrolerên Atmel AVR ve hatî pêşve xistin. Koda PicoLibc belav kirin ji hêla di bin lîsansa BSD de. Civîna pirtûkxaneyê ji bo mîmarên ARM (32-bit), i386, RISC-V, x86_64 û PowerPC tê piştgirî kirin.

Keith Packard piştî ku nekaribû vebijarkek Libc-ya maqûl a ku li ser cîhazên pêvekirî yên bi RAM-a hindik ve were bikar anîn bibîne dest bi pêşkeftinê kir. Proje ji sala par ve pêş dikeve. Di qonaxa yekem de, proje guhertoyek newlib bû, fonksiyonên stdio ku tê de bi guhertoyek kompakt ji avrlibc hate guheztin (stdio di newlib de ji bo xerckirina çavkaniya wê ya zêde ne guncaw bû). Ji ber ku xebata heyî ya Keith xebata domdar bi mîmariya RISC-V û pêşkeftina amûran ji bo cîhazên bicîbûyî re vedihewîne, wî vê dawîyê rewşa pêkanînên libc nirxand û destnîşan kir ku bi piçek guheztinê, berhevkirina newlib û avrlibc dikare bibe armancek giştî ya baş. çare. Di destpêkê de, proje bi navê "newlib-nano" pêş ket, lê ji bo ku bi pirtûkxaneya Newlib re tevlihev nebe, navê wê hate guherandin PicoLibc.

Di forma xweya heyî de, Picolibc berê kar kiriye ku hemî kodên ku di bin lîsansa BSD-ê de nehatine peyda kirin (ev kod dema ku ji bo cîhazên pêvekirî têne çêkirin nehat bikar anîn), ku ev rewş bi lîsansa projeyê re pir hêsan hêsan kiriye. Bicîhkirina herikên herêmî ji 'struct_reent' ber bi mekanîzmaya TLS ve hat veguhestin (thread-herêmî depo). Guhertoya kompakt a stdio, ku ji koda pirtûkxaneya avrlibc hatî deyn kirin, ji hêla xwerû ve tê aktîf kirin (navdêrên komker ên taybetî yên ATmel di C-yê de ji nû ve têne nivîsandin). Amûra Meson ji bo komkirinê hate bikar anîn, ku ev yek hişt ku bi tîpên kombûna newlib re neyê girêdan û veguheztina guhertinan ji newlib hêsan bike. Guhertoyek hêsankirî ya koda destpêkê (crt0) lê zêde kir, bi pelê vesazkirî ve hatî girêdan û berî ku kontrol ji fonksiyona sereke () re were veguheztin, hate darve kirin.

Di guhertoya Picolibc 1.1 de:

  • Ji bo piştgirîkirina teknolojiyê pirtûkxaneyek alîkar lê zêde kir "semihosting"destûrê dide koda ku di hawîrdorek debugger an emulatorê de dixebite ku mekanîzmayên I/O yên pergala mêvandar bikar bîne;
  • Ji bo pergalên ku bangên pergalê yên vekirî, girtin, xwendin û nivîsandinê piştgirî dikin, tinystdio navgînên standardkirî yên POSIX stdio I/O lê zêde dike, tevî fonksiyonên fopen û fdopen, û her weha stdin/stdout/stderr bi ravekerên pelê yên diyarkirî yên POSIX ve girêdide;
  • Guhertinên vê dawîyê ji binkeya kodê ya newlibê hatin kirin. Di nav de stûyên libm ên zêdekirî ji bo fenv.h, ku dikare li ser pergalên bêyî piştgirîya xala hêlînê were bikar anîn;
  • Mînakek avakirina serîlêdana "Hello dinya" bi picolibc ji bo pergalên ARM û RISC-V zêde kir;
  • Pelrêktorên newlib, libm û mathfp, yên ku koda ceribandinê ya nehatî bikar anîn, rakirin.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster