Den fjerde versjonen av oppdateringene for Rust-driverstøtte på Linux er publisert

Miguel Ojeda, forfatter av Rust-for-Linux-prosjektet, Teme avduket nylig det fjerde forslaget til enhetsdriverkomponenter Rust for Linux-kjerneutviklere å vurdere.

Ruststøtte regnes som eksperimentell, men det har allerede blitt avtalt å bli inkludert i linux-neste-grenen og er modent nok til å begynne å jobbe med abstraksjonslag på toppen av kjerneundersystemer, samt skrive drivere og moduler. Utviklingen er finansiert av Google og ISRG (Internet Security Research Group), som er grunnleggeren av Let's Encrypt-prosjektet og fremmer HTTPS og utvikling av teknologier for å øke Internett-sikkerheten.

For de som fortsatt ikke er klar over de foreslåtte endringene, bør de vite at de gjør det mulig bruken av Rust som andrespråk for å utvikle kontrollere og moduler av kjernen. Rust-støtte presenteres som et alternativ som ikke er aktivert som standard og resulterer ikke i at Rust inkluderes blant de nødvendige byggeavhengighetene for kjernen.

Bruker Rust til å utvikle drivere vil tillate deg å lage bedre og sikrere drivere med minimal innsats, uten problemer som å få tilgang til et minneområde etter å ha frigjort det, å referere til null-pekere og bufferoverløp.

Minnesikkerhet er gitt i Rust på kompileringstidspunktet ved å sjekke referanser, spore objekteierskap og objektlevetid (omfang), samt ved å evaluere riktigheten av minnetilgang under utførelse av koden.

Rust gir også heltallsoverløpsbeskyttelse, krever at variabler initialiseres før bruk, håndterer feil i standardbiblioteket bedre, håndhever konseptet med uforanderlige variabler og referanser som standard, og tilbyr sterk statisk skriving for å minimere logiske feil.

Hva er endringene i den fjerde delen?

I denne nye versjonen av lappene som presenteres, nevnes det at kommentarene som ble gitt under diskusjonen av den første, andre og tredje utgaven av lappene fortsatte å bli eliminert.

Vi vil fortsette å oppdatere til vi ikke er avhengige av ustabile funksjoner;
da vil vi kanskje begynne å erklære en minimal versjon av Rust
støttes, slik det for eksempel gjøres for GCC og Clang.

På samme måte migrerte vi til 2021-utgaven av Rust-språket.

Når det gjelder de andre endringene som ble gjort i denne nye versjonen, nevner kunngjøringen følgende:

  • Overført til å bruke stabil Rust 1.58.0 som referansekompilatoren.
  • Endringer som kreves for prosjektet, som ennå ikke er inkludert i hovedverktøysettet for Rust, inkluderer "-Zsymbol-mangling-version=v0"-flagget (forventet i Rust 1.59.0) og "maybe_uninit_extra"-modusen (forventet i Rust 1.60.0) .
  • Automatiske kontroller for tilgjengelighet av Rustverktøy og deres egnethet er lagt til, og muligheten til å teste Ruststøtte på systemet er også utvidet.
  • Nye abstraksjoner er foreslått for å kunne få tilgang til enhetsidentifikatortabellene ("IdArray" og "IdTable") fra Rust-koden.
  • Lagt til lag for å ringe funksjoner som er relatert til timeren (klokkeramme).
  • Plattformkontrollere er nå definert gjennom egenskapsimplementeringer.
  • En ny makro er lagt til for å forenkle plattformdriverregistrering og en ny generisk drivermal er foreslått.
  • Lagt til nye makroer for "dev_*" strukturer.
  • Lagt til nye metoder "{read,write}*_relaxed" for IoMem-typen .
  • Fjernet FileOpener-egenskapen for å forenkle filoperasjoner.
  • Lagt til "ThisModule"-parameteren til antallet argumenter som ble sendt under kontrollerregistreringen.
  • En typisk mal for å lage kjernemoduler i Rust-språket er foreslått.

Til slutt, hvis du er interessert i å vite mer om denne nye versjonen, 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.