Western Digital već radi na NVMe drajveru napisanom u Rustu

RustLinux

Integracija Rusta u Linux imala je visok nivo prihvatanja od strane zajednice i programera

Tokom konferencije “Linux Plumbers 2022”. koji je bio u toku ovih dana, inženjer Western Digital održao prezentaciju o razvoju kontrolera eksperimentalno za SSD NVM-Express (NVMe) napisan u Rustu i radi na nivou Linux kernela.

iako projekat je još uvijek u ranoj fazi razvoja, sprovedeni testovi su pokazali da performanse Rust NVMe drajvera odgovaraju NVMe drajveru napisanom u C u kernelu.

Ja sam Matthew Wilcox, ja sam jedan od autora NVMe specifikacije, ja sam bio taj koji je predložio da napravim NVMe drajver kako bih pokazao vrijednost Rusta. Bio je uspješan iznad mojih najluđih očekivanja. 

Što se tiče predstavljenog izvještaja kaže se da je trenutni NVMe C drajver potpuno zadovoljavajući za programere, ali podsistem NVMe je dobra platforma za istraživanje izvodljivosti razvoja drajvera u Rustu, jer je prilično jednostavan, široko korišten, ima visoke zahtjeve za performansama, ima dokazanu referentnu implementaciju za poređenje i podržava različite interfejse ( dev, pci, dma, blk-mq, gendisk, sysfs).

Primjećuje se da Rust PCI NVMe drajver već pruža potrebnu funkcionalnost za rad, ali još nije spreman za široku upotrebu, jer zahtijeva posebna poboljšanja.

Planovi za budućnost uključuju uklanjanje postojećih nesigurnih blokova, podrška za uklanjanje uređaja i preuzimanje drajvera, podržava sysfs interfejs, implementirati lijenu inicijalizaciju, kreirati kontroler za blk-mq i eksperimentirati sa modelom asinhronog programiranja za queue_rq.

Nadalje, možemo ukazati sprovedeni eksperimenti od strane NCC grupe za razvoj kontrolera na jeziku Rust za FreeBSD kernel. Kao primjer, jednostavan eho kontroler koji vraća podatke upisane u /dev/rustmodule. U sljedećoj fazi eksperimentiranja, NCC grupa razmatra preradu osnovnih komponenti jezgra u Rustu kako bi poboljšala sigurnost operacija mreže i datoteka.

Ipak, iako se pokazalo da je moguće kreirati jednostavne module u Rustu, čvršća integracija Rusta u FreeBSD kernel će zahtijevati dodatni rad.

Na primjer, on spominje potrebu za stvaranjem skupa slojeva apstrakcije nad podsistemima i strukturama kernela, slično dodacima koje je pripremio Rust projekt za Linux. U budućnosti planiramo da izvedemo slične eksperimente sa Illumos jezgrom i istaknemo uobičajene apstrakcije u Rustu koje bi se mogle koristiti u drajverima koje je napisao Rust za Linux, BSD i Illumos.

Prema Microsoft-u i Google-u, oko 70% ranjivosti u njihovim softverskim proizvodima nastaje zbog nesigurnog upravljanja memorijom.

Upotreba Rust jezika bi trebalo da smanji rizik od ranjivosti uzrokovano nesigurnim rukovanjem memorijom i eliminiraće pojavu grešaka kao što je pristup području memorije nakon što je oslobođeno i prepunjavanje bafera.

Sigurnost memorije je obezbeđena u Rustu u vreme kompajliranja proverom referenci, praćenjem vlasništva nad objektom i životnog veka objekta (opsega), kao i procenom ispravnosti pristupa memoriji tokom izvršavanja koda.

rđa također pruža zaštitu od prekoračenja cijelog broja, zahtijeva da se varijable inicijaliziraju prije upotrebe, bolje rukuje greškama u standardnoj biblioteci, primjenjuje koncept nepromjenjivih varijabli i referenci prema zadanim postavkama i nudi snažno statičko kucanje kako bi se minimizirale logičke greške.

Vrijedi spomenuti da je moguće da će budući rad ići ruku pod ruku sa radom koji je Miguel Ojeda predstavio na svojim drajverima "Rust for Linux", koji su predstavljeni kao serija zakrpa.

Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.


Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.