Rust til Linux indeholder flere forbedringer til at understøtte

I løbet af de sidste måneder Linux-udviklere har skændtes muligheden for tillade brugen af ​​Rust-sproget at skrive nye enhedsdrivere til kernen.

Sidste år udviklede Linux-kernen de ser ud til at være nået til enighed om sagen, Rust-tilhængere har citeret arbejde, der viser, at omkring to tredjedele af kernesårbarheder tildelt CVE'er i Android og Ubuntu er relateret til hukommelsessikkerhedsproblemer.

Efter denne udtalelse sagde Linus Torvalds, softwareingeniør, hovedskaber og udvikler af Linux-kernen, i et interview, at diskussioner om emnet ville være langt vigtigere end et langt Google-indlæg om sproget.

Da han blev spurgt om forslaget om at bruge Rust, angav han, at "Løsningen her er enkel: brug bare C ++ i stedet for Rust."

Efter det i marts blev den første support lancerete som gjorde det muligt at placere Rust-driverne i Linux-Next-træet til yderligere test, før de endelig blev inkluderet i hovedkernen.

Lige bagved var en "anmodning om kommentar" genudstedt på kernemailinglisten om rustkodeperspektivet for Linux-kernen.

Miguel OjedaLinux-kerneudvikler startede et forslag til anmodning om kommentarer (RFC) på Linux-kernens mailingliste.

Postlisteposten skitserede overbevisningerne hos udviklere involveret i at tilføje Rust-kode til kernen, fordele som forbedret hukommelsessikkerhed og mere.

"Nogle af jer har bemærket i de sidste par uger og måneder, at der bliver gjort et seriøst forsøg på at bringe et andet sprog til kernen. Vi er endelig der, med en RFC, der tilføjer understøttelse af Rust til Linux-kernen,” sagde Miguel Ojeja. "Vi ved, at der er enorme omkostninger og risici forbundet med at introducere et nyt sprog til kernen," tilføjede han.

Rust for Linux-projektteamet flyttet fra Rust beta compileren til at bruge stabile udgivelser, migrerer hver gang en ny version udgives.

"Vi vil gerne takke Rust for at arbejde sammen med os om disse muligheder, så kernen kan bruge dem," sagde Miguel.

Når compileren opdateres, vil teamet var i stand til at fjerne nogle ustabile funktioner fra listen: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic og try_reserve.

Udover dette fremhæves, at nogle modulariseringsmuligheder er blevet tilføjet mere at allokere for at deaktivere nogle unødvendige funktioner: no_rc og no_sync.

Upstream, for at kernebrugssagen skal være godt understøttet, eller mere præcist "blandingen" af muligheder, kernen har brug for, har Upstream core også tilføjet no_fp_fmt_parse.

På den anden side muliggjorde Rust en række yderligere diagnostik til Rust and Clippy-kompileren. En forskel fra C er, at rustdiagnostik er lidt nemmere at deaktivere i kode, hvilket er strengere i det generelle tilfælde.

også abstraktioner og driveropdateringer er blevet implementeret. Holdet tilføjede abstraktioner til stream-låse, strømstyrings-tilbagekald, io-hukommelse (readX / writeX), irq-chips og stream-managere på højt niveau, gpio-chips (inklusive irq-chips), perifere enheder, amba-perifere enheder og drivere.

Støtten fra controlleren er forbedret med en busuafhængig infrastruktur, Genkaldelige objekter, genkaldelige mutexes, effektive bit-iteratorer, bedre panikdiagnostik og forenklede pointer-indpakninger. Derudover forbedrede og forenklede det Ref-objekter (kompatibelt med refcount_t) og erstattede alle Rust-forekomster.

Og en ny driver til gpio PL061-enheder er blevet implementeret og sendt som RFC-patch.

Endelig skal det bemærkes, at Ruststøtte betragtes stadig som eksperimentel. Imidlertid supporten er god nok til, at kerneudviklere kommer i gang i Rustabstraktioner til skriveundersystemer og controllere og andre moduler. Den nuværende serie er netop ankommet til Linux-next, så den første kørsel finder sted i denne uge.

kilde: https://lkml.org/lkml


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.