Rust for Linux inkluderer flere forbedringer å støtte

I løpet av de siste månedene Linux-utviklere har kranglet muligheten for tillate bruk av Rust-språket for å skrive nye enhetsdrivere for kjernen.

I fjor utviklet Linux-kjernen de ser ut til å ha kommet til enighet om saken, Rust-tilhengere har sitert arbeid som viser at omtrent to tredjedeler av kjernesårbarheter tildelt CVE-er i Android og Ubuntu er relatert til minnesikkerhetsproblemer.

Etter denne uttalelsen sa Linus Torvalds, programvareingeniør, hovedskaper og utvikler av Linux-kjernen, i et intervju at diskusjoner om emnet ville være langt viktigere enn et langt Google-innlegg om språket.

På spørsmål om forslaget om å bruke Rust, indikerte han at "Løsningen her er enkel: bare bruk C ++ i stedet for Rust."

Etter det i mars ble den første støtten lanserte som tillot Rust-driverne å bli plassert i Linux-Next-treet for videre testing før de eventuelt ble inkludert i hovedkjernen.

Rett bak den var en "forespørsel om kommentar" gitt ut på nytt på kjernens e-postliste om rustkodeperspektivet for Linux-kjernen.

Miguel OjedaLinux-kjerneutvikler startet et forslag om forespørsel om kommentarer (RFC) på Linux-kjernens e-postliste.

Postlisteinnlegget skisserte troen til utviklere involvert i å legge til Rust-kode til kjernen, fordeler som forbedret minnesikkerhet og mer.

«Noen av dere har lagt merke til de siste ukene og månedene at det blir gjort et seriøst forsøk på å bringe et andrespråk til kjernen. Vi er endelig der, med en RFC som legger til Rust-støtte til Linux-kjernen, sa Miguel Ojeja. "Vi vet at det er enorme kostnader og risiko forbundet med å introdusere et nytt språk til kjernen," la han til.

Rust for Linux-prosjektteamet flyttet fra Rust beta-kompilatoren til å bruke stabile utgivelser, migrerer hver gang en ny versjon utgis.

"Vi vil gjerne takke Rust for å samarbeide med oss ​​om disse alternativene slik at kjernen kan bruke dem," sa Miguel.

Når du oppdaterer kompilatoren, teamet klarte å fjerne noen ustabile funksjoner fra listen: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic og try_reserve.

I tillegg til dette fremheves det at noen modulariseringsalternativer er lagt til mer å tildele for å deaktivere noen unødvendige funksjoner: no_rc og no_sync.

Upstream, for at kjernebrukssaken skal være godt støttet, eller mer presist "miksen" av alternativer kjernen trenger, har Upstream core også lagt til no_fp_fmt_parse.

På den annen side muliggjorde Rust en serie tilleggsdiagnostikk for Rust and Clippy-kompilatoren. En forskjell fra C er at rustdiagnostikk er litt lettere å deaktivere i kode, som er strengere i det generelle tilfellet.

Også abstraksjoner og driveroppdateringer er implementert. Teamet la til abstraksjoner for strømlåser, tilbakeringing av strømstyring, io-minne (readX / writeX), irq-brikker og strømbehandlere på høyt nivå, gpio-brikker (inkludert irq-brikker), periferiutstyr, amba-periferiutstyr og drivere.

Støtten til kontrolleren er forbedret med en bussuavhengig infrastruktur, Gjenkallbare objekter, tilbakekallbare mutexes, effektive bit-iteratorer, bedre panikkdiagnostikk og forenklet pekerinnpakning. I tillegg forbedret og forenklet den Ref-objekter (kompatibel med refcount_t) og erstattet alle Rust-forekomster.

Og en ny driver for gpio PL061-enheter har blitt implementert og sendt som RFC-oppdatering.

Til slutt skal det bemerkes at Ruststøtte anses fortsatt som eksperimentell. Men støtten er god nok til at kjerneutviklere begynner å jobbe i Rustabstraksjoner for skriveundersystemer og kontrollere og andre moduler. Den nåværende serien har nettopp kommet på Linux-next, så den første kjøringen vil finne sted denne uken.

Fuente: https://lkml.org/lkml


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.