Den tredje version af patches til Rust-driverunderstøttelse i Linux er allerede blevet frigivet

Seks måneder efter offentliggørelsen af ​​den anden version, Miguel Ojeda, forfatter til Rust-for-Linux-projektet, bekendtgjorde forslaget om den tredje mulighed til udvikling af enhedsdrivere i Rust-sprog i Linux-kernen.

Ruststøtte betragtes som eksperimentel, men det er allerede aftalt, at det skal inkluderes i linux-next-grenen. Udviklingen er finansieret af Google og organisationen ISRG (Internet Security Research Group), som er grundlæggeren af ​​Let's Encrypt-projektet og bidrager til fremme af HTTPS og udvikling af teknologier til at forbedre internetsikkerheden.

Det skal huskes, at de foreslåede ændringer tillader Rust at blive brugt som et andet sprog til at udvikle kernedrivere og moduler.

Rust drivere på Linux
relateret artikel:
Den anden version af programrettelserne til Rust-driverunderstøttelse på Linux er allerede sendt

Ruststøtte annonceres som en mulighed, der ikke er aktiv som standard og det resulterer ikke i, at Rust er inkluderet i de påkrævede grundlæggende build-afhængigheder. Brug af Rust til driverudvikling vil give dig mulighed for at skabe bedre og mere sikre drivere med minimal indsats, uden besværet med at få adgang til et område med hukommelse, når først det er frigivet, dereferencere nul-pointere og overskride buffergrænser.

Den nye version af patcherne fortsætter med at eliminere kommentarerne under diskussionen af ​​den første og anden version af patcherne og de mest bemærkelsesværdige ændringer, vi kan finde:

Overført til Rust 1.57 stabil version som referencekompiler og binding til den stabiliserede udgave af sproget Rust 2021. Overgangen til Rust 2021 p-specifikationenlov til at begynde at arbejde for at undgå at bruge sådanne ustabile funktioner i patches som const_fn_transmute, const_panic, const_unreachable_unchecked og core_panic og try_reserve.

Det skiller sig også ud udviklingen af ​​alloc-versionen er fortsat fra Rust-biblioteket, i den nye version, indstillingerne "no_rc" og "no_sync" implementeres for at deaktivere funktionaliteten som ikke bruges i Rust-kode til kernen, hvilket gør biblioteket mere modulært. Vi fortsætter med at arbejde med de vigtigste alloc-udviklere for at bringe de nødvendige kerneændringer til hovedbiblioteket. "no_fp_fmt_parse", som kræves for at biblioteket kan fungere på kerneniveau, er blevet flyttet til Rusts basisbibliotek (kerne).

Kode ryddet op for at fjerne mulige kompileringsadvarsler når kernen kompileres i CONFIG_WERROR-tilstand. Når kode oprettes i Rust, er yderligere diagnostiske compiler-tilstande og Clippy linter-advarsler inkluderet.

De foreslog abstraktioner for at bruge seqlocks (sekvenslåse), tilbagekaldskald til strømstyring, hukommelses-I/O (readX / writeX), interrupt- og thread-handlere, GPIO, enhedsadgang, drivere og legitimationsoplysninger i rustkode.

Værktøjer til driverudvikling er blevet udvidet med brug af flytbare mutexes, bit-iteratorer, forenklede bindinger over pointere, forbedret fejldiagnostik og databus-uafhængig infrastruktur.

Arbejdet med links er blevet forbedret ved hjælp af Ref-typen forenklet, baseret på refcount_t-backend, som bruger den centrale API af samme navn til at tælle referencer. Understøttelse af Arc- og Rc-typerne i standardmapping-biblioteket er blevet fjernet og er ikke tilgængelig i kode udført på kerneniveau (for selve biblioteket er der forberedt muligheder for at deaktivere disse typer).

En version af PL061 GPIO-driveren, omskrevet i Rust, er blevet tilføjet til patches. Et træk ved driveren er, at dens næsten linje-for-linje implementering gentager den eksisterende C GPIO-driver. For udviklere, der ønsker at stifte bekendtskab med bygningscontrollere i Rust, er der udarbejdet en linje-for-linje sammenligning, som giver indblik i, hvilke builds i Rust C-koden er blevet til.

Rusts hovedkodebase anvender rustc_codegen_gcc, en rustc-backend til GCC, der implementerer AOT-kompilering ved hjælp af libgccjit-biblioteket. Med korrekt udvikling af backend, vil det give dig mulighed for at indsamle Rust-koden involveret i kernen ved hjælp af GCC.
Ud over ARM, Google og Microsoft har Red Hat udtrykt interesse for at bruge Rust i Linux-kernen.

Endelig, hvis du er interesseret i at vide mere om det, kan du konsultere detaljerne I det følgende link.


Efterlad din kommentar

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

*

*

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