Durante la conferenza Open-Source Summit 2022 in corso, nella sezione di domande e risposte, Linus Torvalds ha menzionato la possibilità di una prossima integrazione nel kernel di componenti per lo sviluppo di driver per dispositivi in Rust. Non si esclude che le patch con supporto per Rust vengano accettate nel prossimo ciclo di ricezione delle modifiche, che forma la composizione del kernel 5.20, previsto per la fine di settembre.
La richiesta di includere le modifiche nel kernel non è ancora stata inviata a Torvalds, ma il set di patch ha passato un'ulteriore revisione, è stato corretto dalle principali osservazioni, è già in fase di test da tempo nel ramo linux-next ed è stato portato a uno stato adatto per la creazione di strati di astrazione sopra i sottosistemi del kernel, scrittura di driver e moduli. Il supporto per Rust viene presentato come un'opzione, non attiva per impostazione predefinita e non porta all'inclusione di Rust tra le dipendenze di build obbligatorie del kernel.
Le modifiche proposte consentono di utilizzare Rust come secondo linguaggio per lo sviluppo di driver e moduli del kernel. L'uso di Rust per lo sviluppo di driver permetterà di creare driver sicuri e di maggiore qualità con il minimo sforzo, evitando problemi come l'accesso a aree di memoria dopo la loro liberazione, dereferenziazione di puntatori nulli e superamento dei limiti del buffer.
La gestione sicura della memoria in Rust è garantita durante la compilazione attraverso il controllo dei riferimenti, il tracciamento della proprietà degli oggetti e la gestione del tempo di vita degli oggetti (ambito di visibilità), nonché attraverso la valutazione della correttezza dell'accesso alla memoria durante l'esecuzione del codice. Rust fornisce anche strumenti per proteggersi dai sovraccarichi interi, richiede l'inizializzazione obbligatoria dei valori delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, applica il concetto di immutabilità (immutable) per riferimenti e variabili per impostazione predefinita e offre una forte tipizzazione statica per minimizzare gli errori logici.
Fonte: opennet.ru
