Western Digital arbetar redan med en NVMe-drivrutin skriven i Rust

RustLinux

Integreringen av Rust i Linux har haft en hög nivå av acceptans av communityn och utvecklarna

Under konferensen "Linux Plumbers 2022". som pågick dessa dagar, en Western Digital-ingenjör höll en presentation om utvecklingen av en controller experimentell för SSD NVM-Express (NVMe) skrivet i Rust och körs på Linux-kärnnivå.

Även projektet är fortfarande i ett tidigt utvecklingsskede, visade de utförda testerna att prestanda för Rust NVMe-drivrutinen motsvarar NVMe-drivrutinen skriven i C i kärnan.

Jag heter Matthew Wilcox, jag är en av författarna till NVMe-specifikationen, det var jag som föreslog att jag skulle göra en NVMe-drivrutin för att visa värdet av Rust. Det har varit framgångsrikt över mina vildaste förväntningar. 

Angående den redovisade rapporten den nuvarande NVMe C-drivrutinen sägs vara helt tillfredsställande för utvecklare, men NVMe-delsystemet är en bra plattform för att utforska möjligheten att utveckla drivrutiner i Rust, eftersom det är ganska enkelt, flitigt använt, har höga prestandakrav, har en beprövad referensimplementering för jämförelse och stöder olika gränssnitt (dev, pci, dma, blk-mq, gendisk, sysfs).

Det observeras att Rust PCI NVMe-drivrutinen tillhandahåller redan den nödvändiga funktionaliteten för drift, men det är ännu inte redo för utbredd användning, eftersom det kräver separata förbättringar.

Planer för framtiden inkluderar att bli av med befintliga osäkra block, stöd för att ta bort enheten och ladda ner drivrutinen, stöder sysfs-gränssnitt, implementera lat initiering, skapa en kontroller för blk-mq och experimentera med en asynkron programmeringsmodell för queue_rq.

Dessutom kan vi peka de experiment som utförts av NCC-koncernen för att utveckla controllers på språket Rust för FreeBSD-kärnan. Som ett exempel, en enkel ekokontroller som returnerar data som skrivits till /dev/rustmodulen. I nästa fas av experimentet överväger NCC-koncernen att omarbeta kärnkomponenterna i Rust för att förbättra säkerheten för nätverks- och filoperationer.

Som sagt, även om det har visat sig att det är möjligt att skapa enkla moduler i Rust, stramare integration av Rust i FreeBSD-kärnan kommer att kräva ytterligare arbete.

Till exempel nämner han behovet av att skapa en uppsättning abstraktionslager över kärnsubsystem och strukturer, liknande plugins som utarbetats av Rust-projektet för Linux. I framtiden planerar vi att utföra liknande experiment med Illumos-kärnan och lyfta fram vanliga abstraktioner i Rust som kan användas i drivrutiner skrivna av Rust för Linux, BSD och Illumos.

Enligt Microsoft och Google beror omkring 70 % av sårbarheterna i deras mjukvaruprodukter på osäker minneshantering.

Att använda Rust-språket är tänkt att minska risken för sårbarheter orsakas av osäker minneshantering och kommer att eliminera förekomsten av fel som att komma åt ett minnesområde efter att det har frigjorts och buffertspill.

Minnessäkerhet tillhandahålls i Rust vid kompilering genom att kontrollera referenser, spåra objektägande och objektlivslängd (omfattning), samt genom att utvärdera riktigheten av minnesåtkomst under exekvering av koden.

Rust ger även heltalsspillskydd, kräver att variabler initieras före användning, hanterar fel i standardbiblioteket bättre, upprätthåller konceptet med oföränderliga variabler och referenser som standard, och erbjuder stark statisk typning för att minimera logiska fel.

Det är värt att nämna att det kan vara möjligt att framtida arbete går hand i hand med det arbete som Miguel Ojeda har presenterat på sina "Rust for Linux"-drivrutiner, som har presenterats som en serie patchar.

Slutligen om du är intresserad av att veta mer om detkan du kolla in detaljerna följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.