Laeborari e tloaelehileng ea C PicoLibc 1.1 e fumaneha

Keith Packard, mohlahisi ea mafolofolo oa Debian, moetapele oa projeke ea X.Org le moetsi oa likeketso tse ngata tsa X, ho kenyeletsoa XRender, XComposite le XRandR, tsebisoa ho lokolloa ha laeborari e ncha e tloaelehileng ea C PicoLibc 1.1, e etselitsoeng tšebeliso ea lisebelisoa tse kentsoeng tse nang le polokelo e lekanyelitsoeng e sa feleng le RAM. Nakong ea nts'etsopele, karolo ea khoutu e ile ea alingoa laebraring newlib ho tsoa morerong oa Cygwin le AVR Libc, e etselitsoeng li-microcontrollers tsa Atmel AVR. PicoLibc khoutu ajoa ke tlas'a laesense ea BSD. Kopano ea laebrari e tšehetsoa bakeng sa meralo ea ARM (32-bit), i386, RISC-V, x86_64 le PowerPC.

Keith Packard o qalile nts'etsopele kamora ho se khone ho fumana khetho e ntle ea Libc e ka sebelisoang lisebelisoa tse kentsoeng tse nang le RAM e nyane. Morero ona esale o tsoela pele ho tloha selemong se fetileng. Mokhahlelong oa pele, morero ona e ne e le mofuta oa newlib, mesebetsi ea stdio eo ho eona e ileng ea nkeloa sebaka ke compact version e tsoang ho avrlibc (stdio in newlib e ne e sa tšoanelehe bakeng sa tšebeliso e phahameng ea lisebelisoa). Kaha mosebetsi oa morao-rao oa Keith o kenyelletsa mosebetsi o tsoelang pele le meralo ea RISC-V le nts'etsopele ea lisebelisoa bakeng sa lisebelisoa tse kentsoeng, o sa tsoa hlahloba boemo ba ts'ebetsong ea libc mme a etsa qeto ea hore ka ts'ebetso e nyenyane, motsoako oa newlib le avrlibc e ka ba morero o motle ka kakaretso. tharollo. Qalong, morero o ile oa ntlafatsoa tlas'a lebitso la "newlib-nano", empa ho qoba pherekano le laebrari ea Newlib e ile ea rehoa PicoLibc.

Ka sebopeho sa eona sa hajoale, Picolibc e se e entse mosebetsi oa ho tlosa khoutu eohle e sa fanoeng tlas'a laesense ea BSD (khoutu ena e ne e sa sebelisoe ha ho hahuoa lisebelisoa tse kentsoeng), e nolofalitseng boemo haholo ka lengolo la tumello ea morero. Ts'ebetsong ea melapo ea lehae e tlositsoe ho tloha ho 'struct _reent' ho ea ho mochine oa TLS (khoele-sebaka polokelo). Compact version ea stdio, e alimiloeng khoutu ea laeborari ea avrlibc, e kentsoe tšebetsong ka ho sa feleng (li-assembler tse khethehileng tsa ATmel li ngotsoe hape ka C). Setsi sa lithulusi sa Meson se ne se sebelisetsoa ho kopanya, e leng se entseng hore ho khonehe ho se tlameletsoe ho mangolo a kopano ea newlib le ho nolofatsa phetisetso ea liphetoho ho tloha ho newlib. E kentse mofuta o nolofalitsoeng oa khoutu ea ho qala (crt0), e khomaretsoeng faeleng e ka phethisoang mme e phethiloe pele taolo e fetisetsoa tšebetsong e kholo ().

Phetolelong ea Picolibc 1.1:

  • E kentse laeborari e thusang ho ts'ehetsa theknoloji "semihosting"e lumella khoutu e sebetsang sebakeng sa debugger kapa emulator ho sebelisa mekhoa ea tsamaiso ea I/O;
  • Bakeng sa lits'ebetso tse ts'ehetsang mehala e bulehileng, e koalang, e balang le ho ngola, tinystdio e eketsa li-interfaces tse tloaelehileng tsa POSIX stdio I/O, ho kenyeletsoa mesebetsi ea fopen le ea fdopen, hammoho le ho tlama stdin/stdout/stderr ho POSIX-defined file descriptors;
  • Liphetoho tsa morao-rao tse tsoang ho newlib codebase li fetisitsoe. Ho kenyelletsa le libm stubs tse ekelitsoeng bakeng sa fenv.h, e ka sebelisoang ho litsamaiso ntle le tšehetso ea ntlha e phaphametseng;
  • E kentse mohlala oa ho aha "Hello world" kopo ka picolibc bakeng sa litsamaiso tsa ARM le RISC-V;
  • E tlositse li-directory tsa newlib, libm le mathfp, tse nang le khoutu ea liteko e sa sebelisoeng.

Source: opennet.ru

Eketsa ka tlhaloso