Rust for Linux apima kelis patobulinimus

Per pastaruosius mėnesius „Linux“ kūrėjai ginčijosi galimybė leisti vartoti Rust kalbą rašyti naujas branduolio įrenginių tvarkykles.

Praėjusiais metais „Linux“ branduolio kūrėjai atrodo, kad jie pasiekė susitarimą šiuo klausimu, Rust šalininkai citavo darbus, rodančius, kad maždaug du trečdaliai branduolio pažeidžiamumų, priskirtų CVE sistemoje Android ir Ubuntu, yra susiję su atminties saugos problemomis.

Po šio pareiškimo Linusas Torvaldsas, programinės įrangos inžinierius, pagrindinis kūrėjas ir Linux branduolio kūrėjas, interviu sakė, kad diskusijos šia tema būtų daug svarbesnės nei ilgas Google įrašas apie kalbą.

Paklaustas apie pasiūlymą naudoti Rust, jis nurodė, kad „Sprendimas čia paprastas: vietoj Rust naudokite C ++“.

Po to kovo mėnesį buvo pradėta teikti pirmoji paramae, kuri leido „Rust“ tvarkykles įdėti į „Linux-Next“ medį tolesniam bandymui prieš įtraukiant jas į pagrindinį branduolį.

Iškart po jo buvo „prašymas komentuoti“, pakartotinai paskelbtas branduolio adresų sąraše apie „Rust“ kodo perspektyvą „Linux“ branduoliui.

Migelis Ojeda„Linux“ branduolio kūrėjas paskelbė „Request for Comments“ (RFC) pasiūlymą „Linux“ branduolio adresų sąraše.

Pašto adresų sąrašo įraše buvo aprašyti kūrėjų, įtrauktų į branduolį „Rust“ kodą, įsitikinimai, tokie pranašumai kaip pagerinta atminties sauga ir kt.

„Kai kurie iš jūsų pastarosiomis savaitėmis ir mėnesiais pastebėjo, kad rimtai bandoma į branduolį įtraukti antrąją kalbą. Pagaliau mes čia su RFC, kuris prideda „Rust“ palaikymą „Linux“ branduoliui “, - sakė Miguelis Ojeja. „Žinome, kad naujos kalbos įvedimas į branduolį apima milžiniškas išlaidas ir riziką“, – pridūrė jis.

„Rust for Linux“ projekto komanda iš Rust beta kompiliatoriaus perkeltas į stabilių leidimų naudojimą, perkeliama kiekvieną kartą, kai išleidžiama nauja versija.

„Norėtume padėkoti Rust už bendradarbiavimą su mumis dėl šių parinkčių, kad branduolys galėtų jas naudoti“, – sakė Miguelis.

Atnaujinant kompiliatorių, komanda sugebėjo iš sąrašo pašalinti kai kurias nestabilias funkcijas: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic ir try_reserve.

Be to, pabrėžiama, kad buvo pridėtos kai kurios moduliavimo parinktys daugiau skirti tam, kad išjungtumėte kai kurias nereikalingas funkcijas: no_rc ir no_sync.

Prieš srovę, kad būtų gerai palaikomas branduolio naudojimo atvejis, o tiksliau branduoliui reikalingų parinkčių „mišinys“, „Upstream“ branduolys taip pat pridėjo no_fp_fmt_parse.

Kita vertus, „Rust“ įgalino daugybę papildomų „Rust“ ir „Clippy“ kompiliatoriaus diagnostikos priemonių. Vienas skirtumas nuo C yra tas, kad rūdžių diagnostiką yra šiek tiek lengviau išjungti kode, kuris paprastai yra griežtesnis.

taip pat buvo įdiegtos abstrakcijos ir tvarkyklių atnaujinimai. Komanda pridėjo abstrakcijų, skirtų srauto užraktams, galios valdymo iškvietimams, io atminčiai (readX / writeX), irq lustams ir aukšto lygio srauto tvarkytuvams, gpio lustams (įskaitant irq lustus), periferiniams įrenginiams, amba periferiniams įrenginiams ir tvarkyklėms.

Parama iš valdiklis papildytas nuo magistralės nepriklausoma infrastruktūra, Atšaukiami objektai, atšaukiami nutildymai, veiksmingi bitų iteratoriai, geresnė panikos diagnostika ir supaprastinti rodyklės įvyniojimai. Be to, jis patobulino ir supaprastino Ref objektus (suderinamas su refcount_t) ir pakeitė visus Rust egzempliorius.

Nauja gpio PL061 įrenginių tvarkyklė buvo įdiegta ir išsiųsta kaip RFC pataisa.

Galiausiai reikėtų pažymėti, kad Rūdžių palaikymas vis dar laikomas eksperimentiniu. Tačiau palaikymas yra pakankamai geras, kad branduolio kūrėjai kibtų į darbą Rust abstrakcijose rašymo posistemiams ir valdikliams bei kitiems moduliams. Dabartinė serija ką tik pasirodė „Linux-next“, todėl pirmasis paleidimas įvyks šią savaitę.

Fuente: https://lkml.org/lkml


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.