Mhol luchd-leasachaidh bho Google an libc aca fhèin a leasachadh airson LLVM

Aon de na leasaichean bho Google thogadh air liosta puist LLVM mu leasachadh leabharlann àbhaisteach C ioma-àrd-ùrlar (Libc) mar phàirt de phròiseact LLVM. Airson grunn adhbharan, chan eil Google riaraichte leis an libc gnàthach (glibc, musl) agus tha a’ chompanaidh air an t-slighe gu bhith a’ leasachadh buileachadh ùr, a thathar a’ moladh a leasachadh mar phàirt de LLVM.

Chaidh leasachaidhean LLVM a chleachdadh o chionn ghoirid mar bhunait airson innealan cruinneachaidh Google a thogail. Is e am prìomh bheachd ma tha Google air tòiseachadh air a libc a leasachadh mar-thà, carson nach leasaich thu an siostam aige sa bhad mar phàirt de LLVM, a tha mar-thà a’ tabhann a leabharlann àbhaisteach fhèin airson C ++ (Libc ++), ach aig nach eil leabharlann àbhaisteach coltach ris airson C. (libc).

Thathas an dùil leasachadh a dhèanamh ann an ìrean, a’ meudachadh gnìomhachd mean air mhean. Thathas a’ moladh na ciad roghainnean a dhealbhadh mar shreath eadar an tagradh agus an siostam Libc, às an tèid feartan nach deach a chuir an gnìomh fhathast fhaighinn air iasad. Às deidh dha ìre sònraichte de ghnìomhachd a ruighinn, faodar an Libc ùr a chleachdadh mar àite iomlan airson an t-siostam Libc. Tha sinn an dùil tòiseachadh le taic airson ailtireachd x86-64, Linux, agus ceangal statach (thèid luchdachadh fiùghantach, ceangal, agus ailtireachd a bharrachd a chuir an gnìomh san dàrna àite).

Tha am pròiseact fhathast aig a’ chiad ìre leasachaidh, ach tha amasan bunaiteach air am mìneachadh mar-thà:

  • Modularity agus leasachadh a rèir na feallsanachd mu bhith a 'lìbhrigeadh leabharlann granular seach seata monolithic;
  • Taic airson ceangal statach ann am modhan FOOT (Beachdan gnìomhachaidh neo-eisimeileach suidheachadh) agus às aonais PIE. A’ toirt seachad CRT (C runtime) agus PIE loader airson so-ghnìomhan ceangailte gu staitigeach;
  • Taic airson a’ mhòr-chuid de ghnìomhan àbhaisteach leabharlainn C, le cur-ris POSIX agus cuid de leudachaidhean a tha sònraichte don t-siostam a dh’ fheumas na tagraidhean a th’ ann mar-thà;
  • Bi faiceallach le leudachaidhean sònraichte reiceadair agus na cuir ris ach nuair a bhios feum air. A thaobh taic do leudachadh treas-phàrtaidhean, thathar a’ moladh dòigh-obrach nam pròiseactan Clang agus libc++ a chleachdadh;
  • A’ cleachdadh nan cleachdaidhean as fheàrr ann an leasachadh a’ cleachdadh an inneal LLVM, leithid cleachdadh sanitizer agus deuchainn fuzz bhon fhìor thoiseach.

Aon de na luchd-leasachaidh LLVM gnìomhach chomharraichTha e soilleir gu bheil e ciallach libc a chuir air falbh mar phàirt den inneal LLVM, ach mar as trice, nuair a dh’ èireas feum mar sin, bidh iad a’ cleachdadh an leabharlann musl, a tha air a dheagh sgrìobhadh, a’ toirt taic do ghrunn ailtireachd, agus a’ toirt seachad an comas-gnìomh riatanach, a’ toirt a-steach taic airson fiùghantach. a' ceangal. Dh’ fhaodadh gum biodh e reusanta musl fhighe a-steach do LLVM agus a leasachadh mar forc air a shioncronachadh leis a’ phrìomh phròiseact.

Do bheachd cuideachd chur an cèill Ùghdar a’ phròiseict Musl, a dh’ fheuch ri argamaid a dhèanamh carson a tha moladh Google agus toirt a-steach Libc ann an sgaoileadh LLVM nan fìor dhroch bheachdan:

  • Is e obair gu math duilich a th’ ann a bhith a’ leasachadh agus a’ cumail suas Libc a tha ceart, co-fhreagarrach agus àrd-inbhe. Chan eil an duilgheadas anns an ìre de chòd, ach ann a bhith a’ dèanamh cinnteach à giùlan ceart agus duilgheadasan ann a bhith a’ buileachadh eadar-aghaidh, a’ toirt aire don t-sreath mhòr de thagraidhean a chaidh a sgrìobhadh a-riamh ann an C / C ++, a bharrachd air tagraidhean ann an cànanan eile, agus thathas a’ cleachdadh an ùine ruith aca. le Libc. Cha toir dòigh-obrach ceann-air-aghaidh gun a bhith a’ toirt aire do na nuances ach gu bheil mòran de na prògraman a th’ ann mar-thà nach urrainn obrachadh le Libc, ach an uairsin cha bhith pròiseact mar seo inntinneach do luchd-cleachdaidh.
  • Faodaidh leasachadh corporra milleadh a dhèanamh air Libc, ach ga phutadh airson a chleachdadh fad is farsaing, agus mar thoradh air an sin feumar hacks a chuir ris gus dèanamh cinnteach gu bheil iad co-chòrdalachd ann an tagraidhean. Bidh leasachadh fo sgèith pròiseact stòr fosgailte corporra a’ tarraing a’ phlaide a dh’ionnsaigh feumalachdan agus fuasglaidhean na companaidh, a’ dèanamh cron air ùidhean na coimhearsnachd. Mar eisimpleir, ma chomharraicheas tu duilgheadas a tha air adhbhrachadh le bug ann am prògram eile, ann an leasachadh fo smachd tha e nas fhasa dèanamh cinnteach gu bheil Libc co-chòrdail ris a’ bhiast seo na bhith a’ càradh a’ bhiast fhèin. Bidh Apple a’ cleachdadh forc libc BSD airson na h-adhbharan sin, agus bidh Google a’ cleachdadh am forc musl ann am Fuchsia. Is e eòlas an leasaiche musl gun do chuir luchd-lagha fios thuige sa mhòr-chuid gus cùisean ceadachd a shoilleireachadh, ach cha deach fios a chuir thuige a-riamh gus mion-fhiosrachadh teicnigeach a shoilleireachadh mus do rinn e atharrachaidhean gun fheum agus draghail dha na meuran aige.
  • Às aonais monoculture ann an leasachadh libc agus fòcas air inbhean stèidhichte air co-aontachd seach smachd fa leth, a bhrosnaicheas luchd-leasachaidh thagraidhean gu bhith a’ cleachdadh inbhean seach a bhith ceangailte ri buileachadh sònraichte. Sin as coireach gu bheil ùghdar musl an aghaidh a bhith a’ toirt a-steach an leabharlann aige ann an LLVM, a bharrachd air an aghaidh leasachadh libc taobh a-staigh LLVM, leis gu bheil nàdar neo-eisimeileach libc air a chall sa chùis seo agus bidh buileachadh sònraichte gu bhith na fhuasgladh den chiad ìre airson. LLVM, agus a h-uile càil eile gu bhith na fhuasgladh dàrna ìre.

Source: fosgailtenet.ru

Cuir beachd ann