Tillaga um umræðu um að bæta Rust þróunarverkfærum við Linux kjarnann

Nick Desagnier (Nick Desaulniers), sem vinnur hjá Google að veita stuðningur byggja Linux kjarnann með því að nota Clang þýðanda og líka hjálpa laga villur í Rust þýðandanum, lagði til halda á ráðstefnu Linux Pípulagningamannaráðstefna 2020 fundi til að ræða um að gera það mögulegt að þróa kjarnahluta í Rust. Nick er að skipuleggja örráðstefnu tileinkað LLVM og telur að það væri gaman að ræða tæknilega þætti mögulegrar samþættingar Rust-stuðnings við kjarnann (hann hefur þegar útbúið virka frumgerð fyrir KBuild) og skilja hvort slíkur stuðningur ætti að verði yfirhöfuð bætt við og hvaða takmarkanir á notkun Rust ætti að samþykkja.

Við skulum muna að í nýlegri umræðu á Open Source Summit og Embedded Linux ráðstefnunni, Linus Torvalds útilokaði það ekki tilkoma bindinga fyrir þróun kjarna undirkerfa sem ekki eru kjarna (til dæmis rekla) á tungumálum eins og Rust. Hæfni til að þróa rekla í Rust myndi gera okkur kleift að búa til öruggari og betri ökumenn með lágmarks fyrirhöfn, laus við vandamál eins og minnisaðgang eftir losun, núll benditilvísanir og biðminni umframkeyrslu. Það eru nú þegar nokkur verkefni þriðja aðila til að innleiða þennan eiginleika:

  • Hönnuðir frá fyrirtækinu "Fish in a Barrel" undirbúinn verkfærakista til að skrifa hlaðanlegar einingar fyrir Linux kjarnann á Rust tungumálinu, með því að nota sett af óhlutbundnum lögum yfir viðmót og kjarnabyggingu til að auka öryggi. Lög eru sjálfkrafa mynduð út frá núverandi kjarnahausskrám með því að nota tólið bindgen. Clang er notað til að byggja upp lög. Auk millilaga nota samansettu einingarnar staticlib pakkann.
  • Vísindamenn frá kínverska háskólanum í Hong Kong þróast verkefni til að þróa rekla fyrir innbyggð kerfi og Internet of Things tæki í Rust, sem einnig notar bindgen til að búa til lög byggð á kjarnahausskrám. Ramminn gerir þér kleift að bæta öryggi ökumanns án þess að gera breytingar á kjarnanum - í stað þess að búa til viðbótar einangrunarstig fyrir ökumenn í kjarnanum, er lagt til að loka fyrir vandamál á samantektarstigi með því að nota öruggara Rust tungumál. Gert er ráð fyrir að slík nálgun kunni að vera eftirsótt af búnaðarframleiðendum sem þróa eigin rekla í flýti án þess að gera viðeigandi úttekt.
  • Rammahönnuðir C2Rust til að senda út C kóða til Rust, eyða tilraunir á að breyta kjarnaeiningum með lágmarks handvirkum breytingum. Eitt af vandamálunum sem bent er á er notkun víða á kóðakjarnanum sem notar GCC viðbætur sem eru ekki enn studdar í C2Rust. Til að leysa þetta vandamál ætlar C2Rust að bæta við stuðningi við GCC eiginleika inline, cold, alias, used og section, auk þess að auka getu innbyggða samsetningaraðilans og leysa vandamál með mannvirki sem eru bæði samræmd og pakkað (til dæmis xregs_state) . Veruleg vandamál sem krefjast handavinnu eru meðal annars vanhæfni til að þýða óléttvæg C fjölva yfir í Rust fjölva og þörf á að endurskilgreina tegundir, þar sem C2Rust þýðir C tegundir í skilgreiningar í libc pakkanum, en ekki er hægt að nota þennan pakka í kjarnaeiningum.

Heimild: opennet.ru

Bæta við athugasemd