Leabharlann àbhaisteach C PicoLibc 1.1 ri fhaighinn

Keith Packard, leasaiche gnìomhach Debian, stiùiriche pròiseact X.Org agus neach-cruthachaidh iomadh leudachadh X, nam measg XRender, XComposite agus XRandR, toirt a-steach foillseachadh leabharlann àbhaisteach C ùr PicoLibc 1.1, air a leasachadh airson a chleachdadh air innealan freumhaichte le glè bheag de stòradh maireannach agus RAM. Rè leasachadh, chaidh pàirt den chòd a thoirt air iasad bhon leabharlann nuadh bho phròiseact Cygwin agus AVR Libc, air a leasachadh airson microcontrollers Atmel AVR. Còd PicoLibc air a sgaoileadh le fo chead BSD. Tha co-chruinneachadh leabharlainn a’ faighinn taic airson ailtireachd ARM (32-bit), i386, RISC-V, x86_64 agus PowerPC.

Thòisich Keith Packard air leasachadh às deidh dha a bhith comasach air roghainn Libc iomchaidh a lorg a ghabhadh a chleachdadh air innealan freumhaichte le glè bheag de RAM. Tha am pròiseact air a bhith a’ leasachadh bhon uiridh. Aig a’ chiad ìre, b’ e tionndadh de newlib a bh’ anns a’ phròiseact, agus chaidh dreach teann bho avrlibc a chuir nan àite gnìomhan stdio (stdio in newlib cha robh e freagarrach airson a bhith a’ caitheamh stòrasan àrd). Leis gu bheil obair làithreach Keith a’ toirt a-steach obair leantainneach le ailtireachd RISC-V agus leasachadh innealan airson innealan freumhaichte, rinn e ath-sgrùdadh o chionn ghoirid air staid buileachadh libc agus cho-dhùin e le beagan tweaking, gum faodadh an cothlamadh de newlib agus avrlibc a bhith na dheagh adhbhar coitcheann. fuasgladh. An toiseach, leasaich am pròiseact fon ainm “newlib-nano”, ach gus troimh-chèile le leabharlann Newlib a sheachnadh chaidh ath-ainmeachadh PicoLibc.

Mar a tha e an-dràsta, tha Picolibc air obair a dhèanamh mu thràth gus a h-uile còd a thoirt air falbh nach eil air a thoirt seachad fo chead BSD (cha deach an còd seo a chleachdadh nuair a bha e a’ togail airson innealan freumhaichte), a tha air an suidheachadh a dhèanamh nas sìmplidhe le cead a’ phròiseict. Chaidh buileachadh nan sruthan ionadail a ghluasad bho 'struct _reent' gu inneal TLS (stòradh snàithlean-ionadail). Tha an dreach teann de stdio, air iasad bho chòd leabharlainn avrlibc, air a chuir an gnìomh gu bunaiteach (tha cuir a-steach cruinneachaidh sònraichte ATmel air ath-sgrìobhadh ann an C). Chaidh an inneal Meson a chleachdadh airson co-chruinneachadh, a rinn e comasach gun a bhith ceangailte ri sgriobtaichean cruinneachaidh newlib agus gus gluasad atharrachaidhean bho newlib a dhèanamh nas sìmplidhe. Chuir sinn ris dreach nas sìmplidhe den chòd tòiseachaidh (crt0), ceangailte ris an fhaidhle so-ghnìomhaichte agus air a chuir gu bàs mus tèid smachd a ghluasad chun phrìomh () gnìomh.

Ann am Picolibc dreach 1.1:

  • Leabharlann taice air a chur ris gus taic a thoirt don teicneòlas"leth-aoigheachd“a’ ceadachadh còd a ruith ann an àrainneachd debugger no emuladair gus uidheamachdan I/O an t-siostam aoigheachd a chleachdadh;
  • Airson siostaman a bheir taic do shiostaman fosgailte, dùin, leughaidh is sgrìobhaidh, bidh tinystdio a’ cur eadar-aghaidh àbhaisteach POSIX stdio I/O, a’ gabhail a-steach na gnìomhan fopen agus fdopen, a bharrachd air a bhith a’ ceangal stdin/stdout/stderr ri tuairisgeulan faidhle a tha air am mìneachadh le POSIX;
  • Chaidh atharrachaidhean o chionn ghoirid bho bhun-còd newlib a ghiùlan thairis. A’ toirt a-steach stocainnean libm a bharrachd airson feanv.h, a dh'fhaodar a chleachdadh air siostaman gun taic puing-fleòdraidh;
  • Chuir sinn ris eisimpleir de bhith a’ togail an tagradh “Hello world” le picolibc airson siostaman ARM agus RISC-V;
  • Thoir air falbh na clàran newlib, libm agus mathfp, anns an robh còd deuchainneach nach deach a chleachdadh.

Source: fosgailtenet.ru

Cuir beachd ann