Önnur útgáfa af plástra fyrir Linux kjarna með stuðningi fyrir Rust tungumálið

Miguel Ojeda, höfundur Rust-for-Linux verkefnisins, lagði til uppfærða útgáfu af íhlutum til að þróa tækjarekla á Rust tungumálinu til skoðunar hjá Linux kjarnahönnuðum. Ryðstuðningur er talinn tilraunastarfsemi, en þegar hefur verið samið um inngöngu í Linux-next greinina. Nýja útgáfan útilokar athugasemdir sem gerðar voru við umfjöllun um fyrstu útgáfu plástra. Linus Torvalds hefur þegar tekið þátt í umræðunni og lagt til að breyta rökfræði fyrir vinnslu sumra bitaaðgerða.

Mundu að fyrirhugaðar breytingar gera það mögulegt að nota Rust sem annað tungumál til að þróa rekla og kjarnaeiningar. Ryðstuðningur er settur fram sem valkostur sem er ekki virkur sjálfgefið og leiðir ekki til þess að Rust sé innifalinn sem nauðsynleg byggingarháð fyrir kjarnann. Með því að nota Ryð til að þróa ökumenn geturðu búið til öruggari og betri ökumenn með lágmarks fyrirhöfn, laus við vandamál eins og minnisaðgang eftir losun, frávísanir á núllbendi og offramkeyrsla á biðminni.

Minnisörugg meðhöndlun er veitt í Rust á samantektartíma með tilvísunarathugun, með því að halda utan um eignarhald og endingartíma hluta (umfang), sem og með mati á réttmæti minnisaðgangs við keyrslu kóða. Ryð veitir einnig vernd gegn heiltöluflæði, krefst skyldubundinnar frumstillingar breytugilda fyrir notkun, meðhöndlar villur betur í stöðluðu bókasafni, beitir hugmyndinni um óbreytanlegar tilvísanir og breytur sjálfgefið, býður upp á sterka truflanir innsláttar til að lágmarka rökvillur.

Mest áberandi breytingarnar í nýju útgáfu plástra:

  • Minniúthlutunarkóði er laus við að mynda hugsanlega „læti“ þegar villur eins og minnisleysi eiga sér stað. Afbrigði af Rust alloc bókasafninu er innifalið, sem endurvinnur kóðann til að takast á við bilanir, en lokamarkmiðið er að flytja alla eiginleika sem þarf fyrir kjarnann yfir í aðalútgáfu alloc (breytingarnar hafa þegar verið undirbúnar og fluttar yfir í staðalinn Rust bókasafn).
  • Í stað þess að byggja á nóttunni geturðu nú notað beta útgáfur og stöðugar útgáfur af rustc þýðandanum til að setja saman kjarna með Rust stuðningi. Eins og er, er rustc 1.54-beta1 notað sem viðmiðunarþýðandi, en eftir að 1.54 útgáfan er gefin út í lok mánaðarins verður hann studdur sem viðmiðunarþýðandi.
  • Bætti við stuðningi við að skrifa próf með því að nota staðlaða „#[próf]“ eigindina fyrir Rust og getu til að nota doktorspróf til að skjalfesta próf.
  • Bætti við stuðningi við ARM32 og RISCV arkitektúr til viðbótar við áður studd x86_64 og ARM64.
  • Bættar útfærslur á GCC Rust (GCC frontend fyrir Rust) og rustc_codegen_gcc (rustc backend fyrir GCC), sem stenst nú öll grunnpróf.
  • Lagt er til nýtt útdráttarstig til notkunar í Rust forritum kjarnakerfis skrifað í C, svo sem rauð-svört tré, tilvísunartalda hluti, gerð skráarlýsingar, verkefni, skrár og I/O vektora.
  • Þróunarhlutar ökumanns hafa bætt stuðning fyrir file_operations eininguna, mát! makró, þjóðhagsskráningu og grunnrekla (kanna og fjarlægja).
  • Binder styður nú skráarlýsingar og LSM króka.
  • Lagt er upp með virkara dæmi um Rust-rekla - bcm2835-rng fyrir slembitölugjafa Raspberry Pi-borða.

Að auki eru verkefni sumra fyrirtækja sem tengjast notkun Ryð í kjarnanum nefnd:

  • Microsoft hefur lýst yfir áhuga á að taka þátt í vinnunni við að samþætta Rust stuðning inn í Linux kjarnann og er tilbúið að útvega reklaútfærslur fyrir Hyper-V on Rust á næstu mánuðum.
  • ARM vinnur að því að bæta ryðstuðning fyrir ARM-undirstaða kerfi. Rust verkefnið hefur þegar lagt til breytingar sem myndu gera 64-bita ARM kerfi að Tier 1 vettvangi.
  • Google veitir beinlínis stuðning við Rust for Linux verkefnið, er að þróa nýja útfærslu á Binder interprocess samskiptakerfi í Rust og er að íhuga möguleika á að endurvinna ýmsa rekla í Rust. Í gegnum ISRG (Internet Security Research Group) veitti Google styrki til vinnu við að samþætta Rust stuðning í Linux kjarna.
  • IBM hefur innleitt kjarnastuðning fyrir Rust fyrir PowerPC kerfi.
  • Rannsóknarstofa LSE (Systems Research Laboratory) hefur þróað SPI drif í Rust.

Heimild: opennet.ru

Bæta við athugasemd