Available ang Standard C library PicoLibc 1.1

Si Keith Packard, isang aktibong developer Debian, ang pinuno ng proyektong X.Org at tagalikha ng maraming X extension, kabilang ang XRender, XComposite, at XRandR, ipinakilala paglabas ng bagong karaniwang C library PicoLibc 1.1, na binuo para gamitin sa mga naka-embed na device na may limitadong storage at RAM. Sa panahon ng pag-unlad, ang ilang code ay hiniram mula sa library newlib mula sa proyekto ng Cygwin at AVR Libc, na binuo para sa Atmel AVR microcontrollers. PicoLibc code ipinamahagi ni Lisensyado sa ilalim ng lisensya ng BSD. Ang gusali ng library ay sinusuportahan para sa mga arkitektura ng ARM (32-bit), i386, RISC-V, x86_64, at PowerPC.

Sinimulan ni Keith Packard ang pagbuo ng libc library matapos mabigong makahanap ng angkop na implementasyon ng Libc na angkop para sa mga naka-embed na device na may limitadong RAM. Ang proyekto ay isinasagawa na mula noong nakaraang taon. Sa simula, ito ay isang variant ng newlib, na pinapalitan ang mga function ng stdio ng isang compact na bersyon mula sa avrlibc (ang stdio ng newlib ay hindi kasiya-siya dahil sa pagkonsumo ng resource nito). Dahil ang kasalukuyang gawain ni Keith ay kinabibilangan ng patuloy na pagtatrabaho sa arkitektura ng RISC-V at ang pagbuo ng mga toolchain para sa mga naka-embed na device, kamakailan ay sinuri niya ang estado ng mga implementasyon ng libc at napagpasyahan na, sa pamamagitan ng ilang maliit na pagpipino, ang isang kumbinasyon ng newlib at avrlibc ay maaaring maging isang mahusay at unibersal na solusyon. Ang proyekto ay unang binuo sa ilalim ng pangalang "newlib-nano," ngunit upang maiwasan ang kalituhan sa Newlib library, pinalitan ito ng pangalang PicoLibc.

Sa kasalukuyang anyo nito, tinanggal na sa Picolibc ang lahat ng code na walang lisensya mula sa BSD (hindi ginamit ang code na ito sa pagbuo para sa mga naka-embed na device), na lubos na nagpasimple sa sitwasyon ng paglilisensya ng proyekto. Ang pagpapatupad ng mga lokal na thread ay inilipat mula sa 'struct _reent' patungo sa mekanismo ng TLS (thread-lokal na imbakan). Isang compact stdio variant, na hiniram mula sa avrlibc library code, ang pinapagana bilang default (ang ATmel-specific assembly code ay muling isinulat sa C). Ang Meson toolchain ay ginagamit para sa pagbuo, na nag-aalis ng pangangailangan para sa dependency sa mga newlib build script at nagpapadali sa paglipat ng mga pagbabago mula sa newlib. Isang pinasimpleng initialization code (crt0) ang naidagdag, ikinabit sa executable at isinagawa bago ilipat ang kontrol sa main() function.

Sa Picolibc bersyon 1.1:

  • Nagdagdag ng helper library upang suportahan ang "teknolohiya"semi-hosting", na nagpapahintulot sa code na tumatakbo sa isang debugger o emulator environment na gamitin ang mga mekanismo ng I/O ng host system;
  • Para sa mga sistemang sumusuporta sa open, close, read, at write system calls, ang tinystdio ay nagdaragdag ng standardized POSIX stdio I/O interfaces, kabilang ang fopen at fdopen functions, at nagbibigkis sa stdin/stdout/stderr sa mga POSIX-defined file descriptors;
  • Ang mga kamakailang pagbabago mula sa newlib codebase ay nai-port na. Kabilang dito ang pagdaragdag ng mga libm stubs para sa fenv.h, na maaaring gamitin sa mga sistemang walang suporta sa floating-point;
  • Nagdagdag ng halimbawa ng pagbuo ng aplikasyong "Hello world" gamit ang picolibc para sa mga sistemang ARM at RISC-V;
  • Tinanggal ang mga direktoryong newlib, libm, at mathfp, na naglalaman ng hindi nagamit na experimental code.

Pinagmulan: opennet.ru

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster