Western Digital arbejder allerede på en NVMe-driver skrevet i Rust

RustLinux

Integrationen af ​​Rust i Linux har haft en høj grad af accept af fællesskabet og udviklerne

Under konferencen "Linux Plumbers 2022". det var i gang i disse dage, en Western Digital-ingeniør holdt oplæg om udviklingen af ​​en controller eksperimentel til SSD NVM-Express (NVMe) skrevet i Rust og kører på Linux-kerneniveau.

Selv projektet er stadig i et tidligt udviklingsstadium, viste de udførte test, at ydeevnen af ​​Rust NVMe-driveren svarer til NVMe-driveren skrevet i C i kernen.

Jeg er Matthew Wilcox, jeg er en af ​​forfatterne af NVMe-specifikationen, jeg var den, der foreslog, at jeg lavede en NVMe-driver for at demonstrere værdien af ​​Rust. Det er lykkedes over mine vildeste forventninger. 

Vedrørende den fremlagte rapport den nuværende NVMe C-driver siges at være fuldt ud tilfredsstillende for udviklere, men NVMe-undersystemet er en god platform til at udforske muligheden for at udvikle drivere i Rust, da det er ret simpelt, meget brugt, har høje ydeevnekrav, har en dokumenteret referenceimplementering til sammenligning og understøtter forskellige grænseflader (dev, pci, dma, blk-mq, gendisk, sysfs).

Det observeres, at Rust PCI NVMe-driveren giver allerede den nødvendige funktionalitet til drift, men det er endnu ikke klar til udbredt brug, da det kræver separate forbedringer.

Planer for fremtiden omfatter at slippe af med eksisterende usikre blokke, support til at fjerne enheden og downloade driveren, understøtter sysfs-grænseflade, implementer doven initialisering, opret en controller til blk-mq og eksperimenter med en asynkron programmeringsmodel for queue_rq.

Desuden kan vi pege på de udførte forsøg af NCC-koncernen til at udvikle controllere i Rust-sproget til FreeBSD-kernen. Som et eksempel, en simpel ekkocontroller, der returnerer data skrevet til /dev/rustmodule. I den næste fase af eksperimenter overvejer NCC-koncernen at omarbejde kernekomponenter i Rust for at forbedre sikkerheden for netværks- og filoperationer.

Når det er sagt, selvom det har vist sig, at det er muligt at lave simple moduler i Rust, tættere integration af Rust i FreeBSD-kernen vil kræve yderligere arbejde.

For eksempel nævner han behovet for at skabe et sæt abstraktionslag over kerneundersystemer og strukturer, svarende til de plugins, der er udarbejdet af Rust-projektet til Linux. I fremtiden planlægger vi at udføre lignende eksperimenter med Illumos-kernen og fremhæve almindelige abstraktioner i Rust, der kunne bruges i drivere skrevet af Rust til Linux, BSD og Illumos.

Ifølge Microsoft og Google skyldes omkring 70 % af sårbarhederne i deres softwareprodukter usikker hukommelseshåndtering.

Brug af Rust-sproget formodes at reducere risikoen for sårbarheder forårsaget af usikker hukommelseshåndtering og vil eliminere forekomsten af ​​fejl, såsom adgang til et hukommelsesområde, efter at det er blevet frigivet og bufferoverløb.

Hukommelsessikkerhed leveres i Rust på kompileringstidspunktet ved at kontrollere referencer, spore objektejerskab og objektlevetid (omfang), samt ved at evaluere korrektheden af ​​hukommelsesadgang under udførelsen af ​​koden.

Rust giver også heltalsoverløbsbeskyttelse, kræver, at variabler initialiseres før brug, håndterer bedre fejl i standardbiblioteket, håndhæver konceptet med uforanderlige variabler og referencer som standard og tilbyder stærk statisk skrivning for at minimere logiske fejl.

Det er værd at nævne, at det kan være muligt, at fremtidigt arbejde vil gå hånd i hånd med det arbejde, som Miguel Ojeda har præsenteret på sine "Rust for Linux"-drivere, som er blevet præsenteret som en række patches.

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


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.