KÀimasoleval Linux Plumbers 2022 konverentsil esitles Western Digitali insener eksperimentaalse NVMe liidese SSD-draiveri arendust, mis on kirjutatud Rusti keeles ja töötab Linuxi tuumatasemel. Kuigi projekt on veel arengu algfaasis, on testimine nÀidanud, et Rusti NVMe draiveri jÔudlus vastab C-keeles kirjutatud NVMe draiverile, mis on juba tuumas olemas.


Ettekandes öeldakse, et praegune C-keeles NVMe draiver rahuldab arendajaid tĂ€ielikult, kuid NVMe alamsĂŒsteem on hea platvorm Rusti keeles draiverite arendamise otstarbekuse uurimiseks, kuna see on piisavalt lihtne, laialdaselt kasutatav, nĂ”uab kĂ”rgeid jĂ”udlusstandardeid, omab tĂ”estatud mÔÔdikut vĂ”rreldamiseks ja toetab erinevaid liideseid (dev, pci, dma, blk-mq, gendisk, sysfs).
TĂ€htis on mĂ€rkida, et Rusti NVMe draiver pakub juba vajalikku funktsionaalsust, kuid ei ole veel laialdaseks kasutamiseks valmis, kuna vajab tĂ€iendavaid kohandusi. Tulevikusuundadena mainitakse koodi vabastamist olemasolevatest unsafe-blokidest, seadme eemaldamise operatsioonide ja draiveri ĂŒleslaadimise toe lisamist, sysfs liidese toetust, viivitatud initsialiseerimise loomist, blk-mq draiveri arendamist ja eksperimentide teostamist asĂŒnkroonse programmeerimismudeli kasutamiseks queue_rq jaoks.

Lisaks vĂ”ib mĂ€rkida, et NCC Group lĂ€bi viidud eksperimendid Rusti keeles draiverite vĂ€lja arendamiseks FreeBSD tuumale. NĂ€iteks analĂŒĂŒsitakse ĂŒksikasjalikult lihtsat echo-draiverit, mis tagastab andmed, mis on kirjutatud faili /dev/rustmodule. Eksperimentide jĂ€rgmises etapis kaalub NCC Group pĂ”hiliste tuuma komponentide ĂŒmberehitamist Rusti keeles vĂ”rgu ja failide operatsioonide turvalisuse tĂ”stmiseks.
Kuid vaatamata sellele, et on nĂ€idatud vĂ”imalust luua lihtsaid mooduleid Rusti keeles, nĂ”uab Rusti tihedam integreerimine FreeBSD tuumaga tĂ€iendavat tööd. NĂ€iteks mainitakse vajadust luua abstraktsiooni kihte tuumasĂŒsteemide ja struktuuride ĂŒle, sarnased Linuxi projekti Rust for Linux ettevalmistatud lisanditega. Tulevikus planeeritakse sarnaste katsete lĂ€biviimist Illumose tuumaga ja vĂ€lja tuua ĂŒhised abstraktsioonid Rustis, mida saaks kasutada Rustis kirjutatud draiverites Linuxi, BSD ja Illumose jaoks.
Microsofti ja Google'i andmetel on umbes 70% nende tarkvaratooteid puudutavatest haavatavustest pÔhjustatud ebaturvalisest mÀlutööst. Eeldatakse, et Rusti keele kasutamine aitab vÀhendada mÀluga seotud haavatavuste tekkimise riski ja vÀlistada selliste vigade, nagu mÀlu vabastamise jÀrel sellele pÀÀsemine ja puhverpiiridest vÀljumine, esinemist.
Rust tagab mĂ€luga ohutu töö kompileerimise ajal viidete kontrollimise, objektide omandi jĂ€lgimise ja objektide eluea (nĂ€htavuse) arvestamise kaudu ning hindab koodi kĂ€ivitamise ajal mĂ€lule juurdepÀÀsu Ă”igust. Rust pakub ka vahendeid tĂ€isarvude ĂŒletĂ€itumise kaitsmiseks, nĂ”uab muutuja vÀÀrtuste kohustuslikku algvÀÀrtustamist enne kasutamist, kĂ€sitleb vigu paremini standardraamatukogus, rakendab muutujaid ja viiteid vaikimisi muutumatuks (immutable) ning pakub tugevat staatilist tĂŒĂŒbi mÀÀramist loogiliste vigade vĂ€hendamiseks.
Allikas: opennet.ru
