WD arendab Rusti keeles NVMe draiverit. Eksperimendid Rustiga FreeBSD-s.

Praegu toimuval Linux Plumbers 2022 konverentsil esines Western Digital'i insener ettekandega eksperimentaalsest NDME-Express (NVMe) liidese SSD-draiverist, mis on kirjutatud Rust keeles ja töötab Linuxi kernelis. Kuigi projekt on alles varases arenguetapis, näitasid läbiviidud testid, et NVMe draiveri jõudlus Rust keeles vastab olemasolevale NVMe draiverile, mis on kirjutatud C keeles.

WD arendab Rusti keeles NVMe draiverit. Eksperimendid Rustiga FreeBSD-s.
WD arendab Rusti keeles NVMe draiverit. Eksperimendid Rustiga FreeBSD-s.

Ettekandes öeldakse, et praegune NVMe draiver C keeles rahuldab arendajaid täielikult, kuid NVMe subsüsteem on hea koht Rust keeles draiverite arendamise otstarbekuse uurimiseks, kuna see on piisavalt lihtne, laialdaselt kasutatud, nõuab kõrget jõudlust, omab tõestatud viidete teostust võrdlemiseks ja toetab erinevaid liideseid (dev, pci, dma, blk-mq, gendisk, sysfs).

Tõdetakse, et PCI NVMe Rusti draiver pakub juba vajalikke funktsioone, kuid ei ole veel laia kasutuse jaoks valmis, kuna vajab täiendavaid parandusi. Tulevikuplaanide seas on koodi vabastamine olemasolevatest unsafe-blokidest, seadme eemaldamise ja draiveri väljavõtmise toimingute toe lisamine, sysfsi liidese tugi, viivitatud algatuse rakendamine, blk-mq draiveri loomine ja katsetamine asünkroonilise programmeerimise mudeli kasutamisega queue_rq jaoks.

Vaata videot

Lisaks võib märkida, et NCC Group viib läbi katseid Rusti keeles draiverite arendamiseks FreeBSD kerneli jaoks. Näiteks analüüsitakse põhjalikult lihtsat echo-draiverit, mis tagastab andmed, mis on kirjutatud faili /dev/rustmodule. Katsede järgmises etapis kaalub NCC Group baas komponendi ümbertegemist Rusti keeles, et suurendada võrgu- ja failitegevuste turvalisust.

Sellegipoolest, kuigi 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 abstraktsioonikihtide komplekt süstemaatikate ja tuuma struktuuride üle, mis sarnaneb Rust for Linux projekti ettevalmistatud kihtidega. Edasi kavatsetakse läbi viia sarnaseid katsetusi Illumosi tuumaga ning eraldada üldised Rusti abstraktsioonid, mida saaks kasutada Rustis kirjutatud draiverite jaoks Linuxis, BSD-s ja Illumosel.

Microsofti ja Google'i ettevõtete andmetel põhjustab umbes 70% nende tarkvaratoodete haavatavustest ebaturvaline mälu kasutamine. Eeldatakse, et Rusti keele kasutamine vähendab mälu ebaturvalisest töötlemisest tulenevate haavatavuste riski ning kõrvaldab sellised vead nagu mälupiirkonna kasutamine pärast selle vabastamist ja puhvri piirest väljumine.

Rust tagab mälutöö turvalisust kompileerimise ajal viidatud linkide kontrollimise, objektide omaniku jälgimise ja objektide eluea arvestamise (nähtavuse) kaudu, samuti pärast koodi käitamise ajal mälu juurdepääsu õigsuse hindamise kaudu. Rust pakub ka vahendeid täisarvude ülevoolude eest kaitsmiseks, nõuab muutuja väärtuste kohustuslikku initsialiseerimist enne kasutamist, haldab vigu paremini standardraamatukogus, rakendab muutumatuse (immutable) kontseptsiooni linkide ja muutujate puhul vaikimisi ning pakub tugevat staatilist tüüpimist loogiliste vigade minimeerimiseks.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster