WD arendab Rustis NVMe draiverit. Katsetamine Rustiga FreeBSD-s

Neil päevil toimuval konverentsil Linux Plumbers 2022 pidas Western Digitali insener ettekande NVM-Expressi (NVMe) liidesega SSD-draivide eksperimentaalse draiveri väljatöötamisest, mis on kirjutatud Rust keeles ja töötab Linuxi tuumas. tasemel. Hoolimata asjaolust, et projekt on alles arendamise varajases staadiumis, on testimine näidanud, et NVMe draiveri jõudlus Rust keeles vastab NVMe draiverile, mis on kirjutatud tuumas saadaolevas C-keeles.

WD arendab Rustis NVMe draiverit. Katsetamine Rustiga FreeBSD-s
WD arendab Rustis NVMe draiverit. Katsetamine Rustiga FreeBSD-s

Aruandes öeldakse, et praegune C-vormingus NVMe draiver on arendajatele täiesti rahuldav, kuid NVMe alamsüsteem on hea platvorm, et uurida Rusti draiverite arendamise teostatavust, kuna see on üsna lihtne, laialdaselt kasutatav, sellel on kõrged jõudlusnõuded ja tõestatud võrdlusrakendus võrdluseks ja toetab erinevaid liideseid (dev, pci, dma, blk-mq, gendisk, sysfs).

Märgitakse, et Rusti jaoks mõeldud PCI NVMe draiver pakub juba tööks vajalikke funktsioone, kuid pole veel laialdaseks kasutamiseks valmis, kuna vajab individuaalseid täiustusi. Tulevikuplaanid hõlmavad olemasolevate ebaturvaliste plokkide koodi eemaldamist, seadmete eemaldamise ja draiverite mahalaadimise operatsioonide toetamist, sysfs-liidese toetamist, laiska lähtestamise rakendamist, blk-mq draiveri loomist ja queue_rq jaoks asünkroonse programmeerimismudeli kasutamise katsetamist.

Lisaks võime märkida NCC Groupi tehtud katseid, et töötada välja draiverid Rust keeles FreeBSD tuuma jaoks. Näitena uurime üksikasjalikult lihtsat kajadraiverit, mis tagastab faili /dev/rustmodule kirjutatud andmed. Katsetamise järgmises etapis kaalub NCC Group võimalust töötada tuuma põhikomponendid ümber Rust-keeles, et parandada võrgu- ja failitoimingute turvalisust.

Kuigi on näidatud, et Rusti keeles on võimalik luua lihtsaid mooduleid, nõuab Rusti tihedam integreerimine FreeBSD tuumaga lisatööd. Näiteks mainivad nad vajadust luua alamsüsteemide ja tuumastruktuuride peale abstraktsioonikihtide komplekt, mis sarnaneb projekti Rust for Linux koostatud lisandmoodulitega. Tulevikus plaanime sarnaseid katseid läbi viia Illumos tuumaga ja tuvastada Rustis levinud abstraktsioonid, mida saaks kasutada Rust Linuxi, BSD ja Illumos jaoks kirjutatud draiverites.

Microsofti ja Google'i andmetel on umbes 70% nende tarkvaratoodete haavatavustest põhjustatud ebaturvalisest mälukäsitlusest. Eeldatakse, et Rust keele kasutamine vähendab ebaturvalisest mälutööst põhjustatud haavatavust ja välistab selliste vigade ilmnemise nagu mälualale juurdepääs pärast selle vabastamist ja puhvri ületamine.

Mälu turvalisus on Rustis kompileerimise ajal tagatud viidete kontrollimise, objekti omandiõiguse ja objekti eluea (ulatuse) jälgimise, samuti koodi täitmise ajal mälu juurdepääsu õigsuse hindamise kaudu. Rooste pakub ka kaitset täisarvude ületäitumise eest, nõuab muutujate väärtuste kohustuslikku lähtestamist enne kasutamist, käsitleb standardteegi vigu paremini, rakendab vaikimisi muutumatute viidete ja muutujate kontseptsiooni, pakub tugevat staatilist tippimist loogiliste vigade minimeerimiseks.

Allikas: opennet.ru

Lisa kommentaar