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

I mars i år på Linux-neste filial som den gang jobbet for Linux-kjernen 5.13, Et første sett med komponenter ble inkludert for å utvikle enhetsdrivere i språket Rust og nå er forespørselen kommet om å inkludere en andre utgave av oppdateringer for å legge til Rust-støtte til Linux-kjernen.

Personen som har sendt forespørselen til Linux-utviklerne er Miguel Ojeda, forfatter av Rust-for-Linux-prosjektet, og som vi også snakket om for noen dager siden, siden han ble ansatt for å ta ansvaret for "Prossimo" -prosjektet som i utgangspunktet fokuserer på å koordinere innsatsen for å flytte kritisk programvareinfrastruktur til en sikker kode for å sikre Linux-kjerneminne med Rust (hvis du vil vite mer om prosjektet, kan du konsultere innlegg på lenken nedenfor.)

Rust drivere på Linux
Relatert artikkel:
Prossimo, et ISRG-prosjekt for å sikre Linux-kjerneminne med Rust

Forespørselen sendt av Miguel Ojeda er en ny oppdatert versjon av komponentene for utvikling av enhetsdrivere på Rust-språk og hvor kommentarene som ble gitt under diskusjonen av den første versjonen av oppdateringene slettes, og som Linus Torvalds allerede ble med i diskusjonen og foreslo å endre logikken for å behandle noen bitoperasjoner.

Inne i fordelene som er nevnt er det sikker minneadministrasjon er garantert i Rust på kompileringstidspunkt ved å sjekke referanser, spore objektets eierskap og levetiden til objektet, samt evaluere riktigheten av minnetilgang på kjøretid.

Rust gir også heltall overløpsbeskyttelse, krever obligatorisk initialisering av variable verdier før bruk, bedre håndterer feil i standardbiblioteket, vedtar begrepet referanser og uforanderlige variabler som standard, og tilbyr sterk statisk skriving for å minimere logiske feil.

Av endringene som skiller seg ut av denne nye versjonen av lappene er det nevnt:

  • Minnetildelingskoden forhindrer muligheten for å generere panikk når det oppstår feil som for lite minne.
  • Er inkludert en variant av Rust alloc biblioteket, der koden er omarbeidet for å håndtere låser, men det endelige målet er å bringe alle nødvendige funksjoner for kjernen til hovedutgaven av alloc (endringene er allerede utarbeidet og overført til standard Rust-biblioteket).
  • I stedet for nattlige bygg kan nå beta- og stabile versjoner brukes rustc compiler for å kompilere en Rust-aktivert kjerne. For tiden brukes rustc 1.54-beta1 som en referansekompilator, men etter utgivelsen av 1.54 på slutten av måneden vil den bli støttet som en referansekompilator.
  • Lagt til støtte for å skrive tester ved hjelp av standard Rust-attributtet "# [test]" og muligheten til å bruke doktester for å bruke eksempelkode fra dokumentasjonen som tester.
  • Støtte for ARM32- og RISCV-arkitekturer ble lagt til i tillegg til den tidligere støttede x86_64 og ARM64.
    Forbedrede GCC-implementeringer Rust (GCC-frontend for Rust) og rustc_codegen_gcc (rustc-backend for GCC), som nå oppfyller alle standarder.
  • EN nytt nivå av abstraksjon for Rust-programmer for å bruke kjernemekanismer skrevet i C, for eksempel trær, referanse-telleobjekter, opprette filbeskrivere, oppgaver, filer og I / O-vektorer.
  • Driverutviklingskomponentene har forbedret støtte for "file_operations" -modulen, "module!" -Makroen, makrologging og rudimentære drivere (probe og delete).
  • Binder har støtte for å sende filbeskrivere og LSM-lenker.
  • Et mer funksjonelt eksempel på en Rust-driver, bcm2835-rng, er foreslått for en generator for tilfeldig tall for hardware for Raspberry Pi-kort.

Til slutt, hvis du er interessert i å vite mer om det, kan du konsultere 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.