Na konferenciji koja se održava ovih dana Linux Na konferenciji Plumbers 2022, inženjer tvrtke Western Digital predstavio je izvješće o razvoju eksperimentalnog upravljačkog programa na razini jezgre za NVM-Express (NVMe) SSD-ove, napisanog u Rustu. LinuxIako je projekt još uvijek u ranoj fazi razvoja, testiranje je pokazalo da su performanse NVMe upravljačkog programa temeljenog na Rustu usporedive s NVMe upravljačkim programom unutar jezgre napisanim u C-u.


Izvješće navodi da je trenutni NVMe drajver u C-u potpuno zadovoljavajući za programere, ali je NVMe podsustav dobra platforma za istraživanje izvedivosti razvoja drajvera u Rustu, budući da je prilično jednostavan, široko korišten, ima visoke zahtjeve za performansama i ima dokazana referentna implementacija za usporedbu i podržava različita sučelja (dev, pci, dma, blk-mq, gendisk, sysfs).
Napominje se da PCI NVMe upravljački program za Rust već pruža funkcionalnost potrebnu za rad, ali još nije spreman za široku upotrebu, jer zahtijeva individualna poboljšanja. Budući planovi uključuju oslobađanje koda od postojećih nesigurnih blokova, podržavanje operacija uklanjanja uređaja i učitavanja drajvera, podržavanje sysfs sučelja, implementaciju lijene inicijalizacije, stvaranje drajvera za blk-mq i eksperimentiranje s korištenjem asinkronog programskog modela za queue_rq.

Dodatno, možemo primijetiti eksperimente koje je provela NCC grupa za razvoj upravljačkih programa na jeziku Rust za FreeBSD kernel. Kao primjer, detaljno ispitujemo jednostavan upravljački program echo koji vraća podatke zapisane u datoteku /dev/rustmodule. U sljedećoj fazi eksperimentiranja, NCC grupa razmatra mogućnost prerade ključnih komponenti kernela u jeziku Rust kako bi se poboljšala sigurnost mrežnih i datotečnih operacija.
Iako je demonstrirana mogućnost stvaranja jednostavnih modula u Rustu, čvršća integracija Rusta u kernel FreeBSD-a zahtijevat će dodatni rad. Na primjer, spominje se potreba za stvaranjem skupa slojeva apstrakcije preko podsustava i struktura kernela, sličnih okvirima koje je razvio projekt Rust for. LinuxU budućnosti planiramo provesti slične eksperimente s Illumos jezgrom i identificirati uobičajene apstrakcije u Rustu koje bi se mogle koristiti u upravljačkim programima napisanim u Rustu za Linux, BSD i Illumos.
Prema Microsoftu i Googleu, oko 70% ranjivosti u njihovim softverskim proizvodima uzrokovano je nesigurnim rukovanjem memorijom. Očekuje se da će korištenje jezika Rust smanjiti rizik od ranjivosti uzrokovanih nesigurnim radom s memorijom, te eliminirati pojavu pogrešaka poput pristupa memorijskom području nakon što je ono oslobođeno i prekoračenja međuspremnika.
Rukovanje sigurnim za memoriju omogućeno je u Rustu tijekom kompajliranja provjerom referenci, praćenjem vlasništva objekta i životnog vijeka objekta (opseg), kao i procjenom ispravnosti pristupa memoriji tijekom izvođenja koda. Rust također pruža zaštitu od prekoračenja cjelobrojnih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje pogreške u standardnoj biblioteci, primjenjuje koncept nepromjenjivih referenci i varijabli prema zadanim postavkama, nudi snažno statično tipkanje za smanjenje logičkih pogrešaka.
Izvor: opennet.ru
