Maktabadda caadiga ah ee C PicoLibc 1.1 waa la heli karaa

Keith Packard, horumariyaha firfircoon ee Debian, hogaamiyaha mashruuca X.Org iyo abuuraha X kordhinta badan, oo ay ku jiraan XRender, XComposite iyo XRandR, soo bandhigay siideynta maktabad cusub oo heer C ah PicoLibc 1.1, loo sameeyay in lagu isticmaalo aaladaha ku dhex jira ee leh kaydinta joogtada ah ee xaddidan iyo RAM. Inta lagu jiro horumarinta, qayb ka mid ah koodka ayaa laga soo amaahday maktabadda cusub ka mashruuca Cygwin iyo AVR Libc, loo sameeyay Atmel AVR microcontrollers. PicoLibc Code qaybiyey hoos yimaada shatiga BSD. Kulanka maktabadda waxaa lagu taageeraa ARM (32-bit), i386, RISC-V, x86_64 iyo naqshadaha PowerPC.

Keith Packard wuxuu bilaabay horumar ka dib markii uu awoodi waayay inuu helo ikhtiyaar Libc wanaagsan oo loo isticmaali karo aaladaha ku dhex jira RAM yar. Mashruucan ayaa soo socday ilaa sanadkii hore. Marxaladda koowaad, mashruucu waxa uu ahaa nooc cusub oo cusub, hawlaha stdio kaas oo lagu beddelay nuqul kooban oo ka yimid avrlibc (stdio in newlib kuma habboonayn isticmaalka kheyraadka sare). Maadaama shaqada hadda ee Keith ay ku lug leedahay shaqada joogtada ah ee dhismaha RISC-V iyo horumarinta qalabaynta qalabka ku dhex jira, wuxuu dhawaan dib u eegay xaaladda hirgelinta libc oo uu ku soo gabagabeeyey in wax yar la sameeyo, isku dhafka newlib iyo avrlibc waxay noqon kartaa ujeedo guud oo wanaagsan. xal. Markii hore, mashruucu wuxuu ku soo baxay magaca "newlib-nano", laakiin si looga fogaado jahwareerka maktabadda Newlib waxaa loo beddelay PicoLibc.

Qaabkeeda hadda, Picolibc waxay horey u qabatay shaqo si ay meesha uga saarto dhammaan koodka aan lagu bixin shatiga BSD (koodka looma isticmaalin marka la dhisayo aaladaha ku dhex jira), taas oo si weyn u fududaysay xaaladda shatiga mashruuca. Hirgelinta durdurrada maxalliga ah ayaa laga raray 'qaab _reent' loona guuray habka TLS (kaydinta dun-maxalli ah). Nooca is haysta ee stdio, oo laga soo amaahday koodka maktabadda avrlibc, ayaa si toos ah loo hawlgeliyay (Gashiyaha isku-ururinta gaarka ah ee ATmel ayaa dib loogu qoraa C). Qalabka Meson waxa loo isticmaalay isu imaatinka, kaas oo suurtageliyay in aan lagu xidhin qoraalada golaha newlib iyo in la fududeeyo wareejinta isbedelada newlib. Waxaa lagu daray nooca la fududeeyay ee koodhka bilowga (crt0), oo ku lifaaqan faylka la fulin karo oo la fuliyay ka hor inta aan kantaroolka loo wareejin shaqada () ugu weyn.

Nooca Picolibc 1.1:

  • Lagu daray maktabad caawiye si ay u taageerto tignoolajiyada"semihosting"waxay u ogolaataa kood ku socda deegaan debugger ama emulator si uu u isticmaalo hababka I/O ee nidaamka martida loo yahay;
  • Nidaamyada taageera furnaanta, xiritaanka, akhrinta, iyo qorista wicitaannada nidaamka, tinystdio waxay ku daraysaa is-dhexgalka POSIX stdio I/O ee caadiga ah, oo ay ku jiraan fopen iyo fdopen functions, iyo sidoo kale xiritaanka stdin/stdout/stderr sifayaasha faylka POSIX-qeexay;
  • Isbeddeladii u dambeeyay ee ka soo baxay codebase-ka newlib waa la fuliyay. Oo ay ku jiraan tubbada libm ee lagu daray fenv.h, kaas oo loo isticmaali karo nidaamyada iyada oo aan la helin taageerada dhibcaha;
  • Lagu daray tusaale dhisidda codsiga "Hello world" oo leh picolibc ee nidaamyada ARM iyo RISC-V;
  • Waxa meesha ka saaray hagaha newlib, libm iyo mathfp, kaas oo ka kooban kood tijaabo ah oo aan la isticmaalin.

Source: opennet.ru

Add a comment