Librerija C standard PicoLibc 1.1 disponibbli

Keith Packard, żviluppatur Debian attiv, mexxej tal-proġett X.Org u kreatur ta' ħafna estensjonijiet X inklużi XRender, XComposite u XRandR, daħħal rilaxx ta' librerija C standard ġdida PicoLibc 1.1, żviluppat għall-użu fuq apparati inkorporati b'ħażna permanenti limitata u RAM. Matul l-iżvilupp, parti mill-kodiċi ġiet mislufa mil-librerija newlib mill-proġett Cygwin u AVR Libc, żviluppat għal mikrokontrolluri Atmel AVR. Kodiċi PicoLibc imqassma minn taħt liċenzja BSD. L-assemblaġġ tal-librerija huwa appoġġjat għall-arkitetturi ARM (32-bit), i386, RISC-V, x86_64 u PowerPC.

Keith Packard beda l-iżvilupp wara li ma setax isib għażla Libc deċenti li tista 'tintuża fuq apparati inkorporati bi ftit RAM. Il-proġett ilu jiżviluppa mis-sena li għaddiet. Fl-ewwel stadju, il-proġett kien varjant ta 'newlib, il-funzjonijiet ta' stdio li fihom ġew sostitwiti b'verżjoni kompatta minn avrlibc (stdio f'newlib ma kienx adattat għall-konsum għoli ta 'riżorsi tiegħu). Peress li x-xogħol attwali ta' Keith jinvolvi xogħol kontinwu ma' l-arkitettura RISC-V u żvilupp ta' għodda għal apparati inkorporati, huwa reċentement irreveda l-istat tal-implimentazzjonijiet tal-libc u kkonkluda li bi ftit tweaking, il-kombinazzjoni ta' newlib u avrlibc tista' tkun skop ġenerali tajjeb. soluzzjoni. Inizjalment, il-proġett żviluppa taħt l-isem "newlib-nano", iżda biex tiġi evitata konfużjoni mal-librerija Newlib ingħata l-isem ġdid PicoLibc.

Fil-forma attwali tiegħu, Picolibc diġà għamel xogħol biex ineħħi l-kodiċi kollu li mhux fornut taħt liċenzja BSD (dan il-kodiċi ma ntużax meta jinbena għal apparati inkorporati), li ssimplifika b'mod sinifikanti s-sitwazzjoni bil-liċenzja għall-proġett. L-implimentazzjoni tal-flussi lokali ġiet imċaqalqa minn 'struct _reent' għall-mekkaniżmu TLS (ħażna lokali tal-ħajt). Il-verżjoni kompatta ta 'stdio, mislufa mill-kodiċi tal-librerija avrlibc, hija attivata awtomatikament (inserzjonijiet tal-assemblatur speċifiċi għall-ATmel huma miktuba mill-ġdid f'Ċ). Il-Meson toolkit intuża għall-assemblaġġ, li għamilha possibbli li ma jkunx marbut ma 'skripts tal-assemblaġġ newlib u li jiġi ssimplifikat it-trasferiment tal-bidliet minn newlib. Miżjud verżjoni simplifikata tal-kodiċi ta 'inizjalizzazzjoni (crt0), mehmuża mal-fajl eżekutibbli u esegwita qabel il-kontroll jiġi trasferit għall-funzjoni prinċipali ().

Fil-verżjoni Picolibc 1.1:

  • Miżjuda librerija awżiljarja biex tappoġġja t-teknoloġija "semihosting"jippermetti li kodiċi li jaħdem f'ambjent ta' debugger jew emulatur juża l-mekkaniżmi I/O tas-sistema ospitanti;
  • Għal sistemi li jappoġġjaw is-sejħiet tas-sistema miftuħa, tagħlaq, jaqraw u jiktbu, tinystdio iżid interfaces standardizzati POSIX stdio I/O, inklużi l-funzjonijiet fopen u fdopen, kif ukoll vinkolanti stdin/stdout/stderr għal deskritturi tal-fajls definiti minn POSIX;
  • Bidliet reċenti mill-kodiċi newlib ġew trasferiti. Inkluż miżjud libm stubs għal fenv.h, li jistgħu jintużaw fuq sistemi mingħajr appoġġ floating point;
  • Żid eżempju ta 'bini tal-applikazzjoni "Hello world" b'picolibc għal sistemi ARM u RISC-V;
  • Neħħew id-direttorji newlib, libm u mathfp, li kien fihom kodiċi sperimentali mhux użat.

Sors: opennet.ru

Żid kumment