Rust for Linux sisältää useita tuettavia parannuksia

Viimeisten kuukausien aikana Linux-kehittäjät ovat riidelleet mahdollisuus salli Rust-kielen käyttö kirjoittaaksesi uusia laiteajureita ytimelle.

Viime vuonna Linux-ytimen kehittäjät he näyttävät päässeet sopimukseen asiasta, Rustin kannattajat ovat viitanneet työhön, joka osoittaa, että noin kaksi kolmasosaa ytimen haavoittuvuuksista, joihin on määritetty Androidin ja Ubuntun CVE, liittyvät muistin suojausongelmiin.

Tämän lausunnon jälkeen Linus Torvalds, ohjelmistosuunnittelija, johtava luoja ja Linux-ytimen kehittäjä, sanoi haastattelussa, että keskustelut aiheesta olisivat paljon tärkeämpiä kuin pitkä Google-postaus kielestä.

Kun kysyttiin ruosteen käyttöehdotuksesta, hän ilmoitti, että "Ratkaisu tähän on yksinkertainen: käytä vain C ++:aa Rustin sijaan."

Sen jälkeen maaliskuussa käynnistettiin ensimmäinen tukie, joka mahdollisti Rust-ajureiden sijoittamisen Linux-Next-puuhun lisätestausta varten ennen niiden sisällyttämistä pääytimeen.

Heti sen takana oli "kommenttipyyntö", joka lähetettiin uudelleen ytimen postituslistalle Linux-ytimen Rust-koodin näkökulmasta.

Miguel OjedaLinux-ytimen kehittäjä aloitti Request for Comments (RFC) -ehdotuksen Linux-ytimen postituslistalla.

Postituslistalla hahmoteltiin Rust-koodin lisäämiseen ytimeen osallistuneiden kehittäjien uskomuksia, etuja, kuten parannettu muistin suojaus ja paljon muuta.

"Jotkut teistä ovat huomanneet viime viikkoina ja kuukausina, että ytimeen yritetään vakavasti tuoda toinen kieli. Olemme vihdoin perillä RFC:n kanssa, joka lisää Rust-tuen Linux-ytimeen ”, Miguel Ojeja sanoi. "Tiedämme, että uuden kielen ottaminen ytimeen sisältää valtavia kustannuksia ja riskejä", hän lisäsi.

Rust for Linux -projektitiimi siirretty Rust-beta-kääntäjästä vakaiden julkaisujen käyttöön, siirretään aina, kun uusi versio julkaistaan.

"Haluamme kiittää Rustia työskentelystä kanssamme näiden vaihtoehtojen parissa, jotta ydin voi käyttää niitä", sanoi Miguel.

Kääntäjän päivityksen yhteydessä tiimi pystyi poistamaan joitakin epävakaita ominaisuuksia luettelosta: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic ja try_reserve.

Tämän lisäksi korostetaan, että joitain modulointivaihtoehtoja on lisätty enemmän jaettavaa joidenkin tarpeettomien toimintojen poistamiseksi käytöstä: no_rc ja no_sync.

Ylävirran ytimeen on lisätty myös no_fp_fmt_parse, jotta ytimen käyttötapaus olisi hyvin tuettu, tai tarkemmin sanottuna ytimen tarvitsemien vaihtoehtojen "yhdistelmä".

Toisaalta Rust mahdollisti joukon lisädiagnostiikkaa Rust and Clippy -kääntäjälle. Yksi ero C:stä on se, että ruostediagnostiikka on hieman helpompi poistaa käytöstä koodissa, mikä on yleensä tiukempaa.

myös abstraktioita ja ohjainpäivityksiä on otettu käyttöön. Tiimi lisäsi abstraktioita stream-lukkoihin, virranhallinnan takaisinkutsuihin, io-muistiin (readX / writeX), irq-siruihin ja korkean tason stream-hallintaohjelmiin, gpio-siruihin (mukaan lukien irq-sirut), oheislaitteille, amba-oheislaitteille ja ohjaimille.

Tuki ohjain on parannettu väyläriippumattomalla infrastruktuurilla, Perutettavat objektit, peruutettavat mutexit, tehokkaat bittiteraattorit, parempi paniikkidiagnostiikka ja yksinkertaistetut osoitinkääreet. Lisäksi se paransi ja yksinkertaisti Ref-objekteja (yhteensopiva refcount_t:n kanssa) ja korvasi kaikki Rust-esiintymät.

Ja uusi ohjain gpio PL061 -laitteille on otettu käyttöön ja toimitettu RFC-korjauksena.

Lopuksi on huomattava, että Ruosteen tukemista pidetään edelleen kokeellisena. Kuitenkin, tuki on tarpeeksi hyvä, jotta ytimen kehittäjät pääsevät töihin Rust-abstraktioissa kirjoitusalijärjestelmille ja ohjaimille ja muille moduuleille. Nykyinen sarja on juuri saapunut Linuxille-seuraavaksi, joten ensimmäinen ajo suoritetaan tällä viikolla.

lähde: https://lkml.org/lkml


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.