Den tredje versjonen av oppdateringene for Rust-driverstøtte i Linux er allerede utgitt

Seks måneder etter utgivelsen av den andre versjonen, Miguel Ojeda, forfatter av Rust-for-Linux-prosjektet, gjort kjent forslaget om det tredje alternativet for utvikling av enhetsdrivere i Rust-språket i Linux-kjernen.

Ruststøtte betraktes som eksperimentell, men inkludering av den i Linux-neste gren er allerede avtalt. Utviklingen er finansiert av Google og organisasjonen ISRG (Internet Security Research Group), som er grunnleggeren av Let's Encrypt-prosjektet og bidrar til promotering av HTTPS og utvikling av teknologier for å forbedre Internett-sikkerheten.

Det bør huskes at de foreslåtte endringene gjør at Rust kan brukes som et andrespråk for å utvikle kjernedrivere og moduler.

Rust drivere på Linux
Relatert artikkel:
Den andre versjonen av oppdateringene for Rust-driverstøtte på Linux er allerede sendt

Ruststøtte annonseres som et alternativ som ikke er aktivt som standard og det resulterer ikke i at Rust inkluderes i de nødvendige grunnleggende byggeavhengighetene. Å bruke Rust for driverutvikling vil tillate deg å lage bedre og sikrere drivere med minimal innsats, uten problemer med å få tilgang til et minneområde når det er frigjort, avreferere null-pekere og overskride buffergrenser.

Den nye versjonen av oppdateringene fortsetter å eliminere kommentarene som ble gitt under diskusjonen om den første og andre versjonen av oppdateringene og de mest bemerkelsesverdige endringene vi kan finne:

Overført til Rust 1.57 stabil versjon som referansekompilator og binding til den stabiliserte utgaven av språket Rust 2021. Overgangen til Rust 2021 p-spesifikasjonen er sikretlov til å begynne å jobbe for å unngå å bruke slike ustabile funksjoner i patcher som const_fn_transmute, const_panic, const_unreachable_unchecked og core_panic og try_reserve.

Det skiller seg også ut at utviklingen av alloc-versjonen har fortsatt fra Rust-biblioteket, i den nye versjonen, alternativene "no_rc" og "no_sync" er implementert for å deaktivere funksjonaliteten som ikke brukes i Rust-kode for kjernen, noe som gjør biblioteket mer modulært. Vi fortsetter å jobbe med hovedallokutviklerne for å bringe de nødvendige kjerneendringene til hovedbiblioteket. Alternativet "no_fp_fmt_parse", som kreves for at biblioteket skal fungere på kjernenivå, har blitt flyttet til Rust sitt basisbibliotek (kjerne).

Koden ryddet opp for å fjerne mulige kompilatoradvarsler når du kompilerer kjernen i CONFIG_WERROR-modus. Når koden opprettes i Rust, er flere diagnostiske kompilatormoduser og Clippy linter-advarsler inkludert.

De foreslo abstraksjoner for å bruke seqlocks (sekvenslåser), tilbakeringing for strømstyring, minne I/O (readX / writeX), avbrudds- og trådbehandlere, GPIO, enhetstilgang, drivere og legitimasjon i rustkode.

Verktøy for driverutvikling har blitt utvidet med bruk av flyttbare mutexes, bit-iteratorer, forenklede bindinger over pekere, forbedret feildiagnostikk og databussuavhengig infrastruktur.

Arbeid med lenker er forbedret ved å bruke Ref-typen forenklet, basert på refcount_t backend, som bruker den sentrale APIen med samme navn for å telle referanser. Støtte for Arc- og Rc-typene gitt i standard kartleggingsbibliotek er fjernet og er ikke tilgjengelig i kode utført på kjernenivå (for selve biblioteket er det utarbeidet alternativer for å deaktivere disse typene).

En versjon av PL061 GPIO-driveren, omskrevet i Rust, er lagt til oppdateringene. En funksjon ved driveren er at dens nesten linje-for-linje-implementering gjentar den eksisterende C GPIO-driveren. For utviklere som ønsker å bli kjent med bygningskontrollere i Rust, er det utarbeidet en linje-for-linje sammenligning, som hjelper til med å forstå hva som bygger i Rust C-koden har blitt.

Rusts hovedkodebase tar i bruk rustc_codegen_gcc, en rustc-backend for GCC som implementerer AOT-kompilering ved å bruke libgccjit-biblioteket. Med riktig utvikling av backend, vil det tillate deg å samle Rust-koden involvert i kjernen ved å bruke GCC.
I tillegg til ARM, Google og Microsoft, har Red Hat uttrykt interesse for å bruke Rust i Linux-kjernen.

Til slutt, hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.


Legg igjen kommentaren

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

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  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.