Western Digital sta già lavorando su un driver NVMe scritto in Rust

Rust Linux

L'integrazione di Rust in Linux ha avuto un alto livello di accettazione da parte della comunità e degli sviluppatori

Durante la conferenza “Linux Plumbers 2022”. che era in corso in questi giorni, un ingegnere di Western Digital ha tenuto una presentazione sullo sviluppo di un controller sperimentale per SSD NVM-Express (NVMe) scritto in Rust e in esecuzione a livello di kernel Linux.

Anche se il progetto è ancora in una fase iniziale di sviluppo, i test effettuati hanno mostrato che le prestazioni del driver Rust NVMe corrispondono al driver NVMe scritto in C nel kernel.

Sono Matthew Wilcox, sono uno degli autori delle specifiche NVMe, sono stato io a suggerirmi di realizzare un driver NVMe per dimostrare il valore di Rust. Ha avuto successo oltre le mie più rosee aspettative. 

In merito alla relazione presentata si dice che l'attuale driver NVMe C sia pienamente soddisfacente per gli sviluppatori, ma il sottosistema NVMe è una buona piattaforma per esplorare la fattibilità dello sviluppo di driver in Rust, poiché è abbastanza semplice, ampiamente utilizzato, ha requisiti di prestazioni elevate, ha una collaudata implementazione di riferimento per il confronto e supporta varie interfacce ( dev, pci, dma, blk-mq, gendisk, sysfs).

Si osserva che il driver Rust PCI NVMe fornisce già le funzionalità necessarie per il funzionamento, ma non è ancora pronto per un uso diffuso, poiché richiede miglioramenti separati.

I piani per il futuro includono l'eliminazione dei blocchi insicuri esistenti, supporto per rimuovere il dispositivo e scaricare il driver, supporta l'interfaccia sysfs, implementa l'inizializzazione lazy, crea un controller per blk-mq e sperimenta un modello di programmazione asincrono per queue_rq.

Inoltre, possiamo indicare gli esperimenti effettuati dal Gruppo NCC per sviluppare controller in lingua Rust per il kernel di FreeBSD. Ad esempio, un semplice echo controller che restituisce i dati scritti nel /dev/rustmodule. Nella prossima fase di sperimentazione, il gruppo NCC sta valutando la possibilità di rielaborare i componenti principali di Rust per migliorare la sicurezza delle operazioni di rete e file.

Detto questo, sebbene sia stato dimostrato che è possibile creare moduli semplici in Rust, una più stretta integrazione di Rust nel kernel di FreeBSD richiederà ulteriore lavoro.

Ad esempio, menziona la necessità di creare un insieme di livelli di astrazione su sottosistemi e strutture del kernel, simili ai plugin preparati dal progetto Rust per Linux. In futuro, prevediamo di eseguire esperimenti simili con il core di Illumos ed evidenziare le astrazioni comuni in Rust che potrebbero essere utilizzate nei driver scritti da Rust per Linux, BSD e Illumos.

Secondo Microsoft e Google, circa il 70% delle vulnerabilità nei loro prodotti software è dovuto a una gestione non sicura della memoria.

L'uso del linguaggio Rust dovrebbe ridurre il rischio di vulnerabilità causato da una gestione non sicura della memoria ed eliminerà il verificarsi di errori come l'accesso a un'area di memoria dopo che è stata liberata e l'overflow del buffer.

La sicurezza della memoria viene fornita in Rust in fase di compilazione controllando i riferimenti, monitorando la proprietà dell'oggetto e la durata dell'oggetto (ambito), nonché valutando la correttezza dell'accesso alla memoria durante l'esecuzione del codice.

Ruggine fornisce anche la protezione dall'overflow di numeri interi, richiede l'inizializzazione delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, applica il concetto di variabili e riferimenti immutabili per impostazione predefinita e offre una tipizzazione statica forte per ridurre al minimo gli errori logici.

Vale la pena ricordare che potrebbe essere possibile che il lavoro futuro vada di pari passo con il lavoro che Miguel Ojeda ha presentato sui suoi driver "Rust for Linux", che sono stati presentati come una serie di patch.

Infine se sei interessato a saperne di più, puoi controllare i dettagli in il seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.