WD sta sviluppando un driver NVMe in linguaggio Rust. Sperimentazioni con Rust su FreeBSD.

Durante la conferenza Linux Plumbers 2022, un ingegnere della Western Digital ha presentato un documento sulla creazione di un driver sperimentale per SSD con interfaccia NVM-Express (NVMe), scritto in Rust e operante a livello del kernel Linux. Sebbene il progetto sia ancora in fase iniziale, i test effettuati hanno dimostrato che le prestazioni del driver NVMe in Rust sono comparabili a quelle dell'attuale driver NVMe nel kernel scritto in C.

WD sta sviluppando un driver NVMe in linguaggio Rust. Sperimentazioni con Rust su FreeBSD.
WD sta sviluppando un driver NVMe in linguaggio Rust. Sperimentazioni con Rust su FreeBSD.

Nel documento si afferma che l'attuale driver NVMe in C soddisfa appieno gli sviluppatori, ma la sottosistema NVMe rappresenta un'ottima opportunità per esplorare la fattibilità di sviluppare driver in Rust, dato che è relativamente semplice, ampiamente utilizzata, richiede elevate prestazioni, ha un'implementazione di riferimento consolidata per il confronto e supporta vari interfacce (dev, pci, dma, blk-mq, gendisk, sysfs).

Si segnala che il driver PCI NVMe in Rust fornisce già la funzionalità necessaria per il suo funzionamento, ma non è ancora pronto per un uso diffuso, poiché richiede ulteriori sviluppi. Tra i piani futuri c'è la rimozione dei blocchi unsafe esistenti, il supporto per le operazioni di rimozione del dispositivo e il download del driver, il supporto per l'interfaccia sysfs, l'implementazione di un'inizializzazione rinviata, la creazione di un driver per blk-mq e esperimenti con l'uso di un modello di programmazione asincrona per queue_rq.

Riproduci video

Inoltre, è possibile notare gli esperimenti condotti dalla NCC Group per sviluppare driver in linguaggio Rust per il kernel FreeBSD. Come esempio, viene esaminato in dettaglio un semplice driver echo che restituisce i dati scritti nel file /dev/rustmodule. Nella fase successiva degli esperimenti, la NCC Group valuta la possibilità di riscrivere in Rust i componenti di base del kernel per migliorare la sicurezza delle operazioni di rete e di file.

Tuttavia, sebbene sia stata mostrata la possibilità di creare semplici moduli nel linguaggio Rust, un'integrazione più stretta di Rust nel kernel FreeBSD richiederà ulteriore lavoro. Ad esempio, viene menzionata la necessità di creare un insieme di livelli di astrazione sopra i sottosistemi e le strutture del kernel, simili a quelle sviluppate dal progetto Rust for Linux. In futuro, si prevede di condurre esperimenti simili con il kernel di Illumos e distinguere astrazioni comuni in Rust che potrebbero essere utilizzate in driver scritti in Rust per Linux, BSD e Illumos.

Secondo le aziende Microsoft e Google, circa il 70% delle vulnerabilità nei loro prodotti software è causato da una gestione della memoria non sicura. Si stima che l'uso del linguaggio Rust possa ridurre il rischio di vulnerabilità causate da una gestione non sicura della memoria ed eliminare errori come l'accesso a aree di memoria dopo il loro rilascio e il superamento dei limiti del buffer.

La gestione sicura della memoria in Rust viene garantita durante la compilazione tramite il controllo dei riferimenti, il tracciamento della proprietà degli oggetti e la gestione del tempo di vita degli oggetti (scope), nonché tramite la valutazione della correttezza dell'accesso alla memoria durante l'esecuzione del codice. Rust fornisce anche strumenti per proteggere contro i sovraccarichi numerici, richiede l'inizializzazione obbligatoria dei valori delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, applica il concetto di riferimenti e variabili immutabili (immutable) per impostazione predefinita e offre una forte tipizzazione statica per minimizzare gli errori logici.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster