Rust fa un grande passo avanti come seconda lingua ufficiale di Linux
Linux sta diventando sempre più Rust ogni giorno.
Non è passato molto tempo da quando l'idea stessa di usare un altro linguaggio oltre al C nel kernel di Linux sarebbe stata derisa. Le cose sono cambiate. Oggi, non solo Rust, il linguaggio di sistema di alto livello, si sta avvicinando a Linux, ma è più vicino che mai con la prossima "serie di patch per aggiungere il supporto per Rust come secondo linguaggio al kernel Linux".
Il cambiamento più grande in questi nuovi pacchetti è che il codice Rust proposto per il kernel ora si basa sul compilatore Rust stabile anziché sui compilatori beta. In futuro, Rust su Linux verrà migrato ogni volta che verrà rilasciato un nuovo compilatore Rust stabile. Attualmente utilizza Rust 1.57.0.
In questo modo, in qualità di kernel Linux e responsabile di Rust su Linux, lo sviluppatore Miguel Ojeda, ha affermato: "Aggiornando il compilatore, siamo stati in grado di rimuovere dall'elenco alcune funzionalità instabili che stavamo utilizzando". Ciò, a sua volta, significa che Rust su Linux sarà più stabile.
Guardando al futuro, Ojeda ha scritto: "Continueremo ad aggiornare fino a quando non faremo più affidamento su funzionalità instabili; a quel punto potremmo voler iniziare a dichiarare che una versione minima di Rust è supportata come è fatto, ad esempio GCC e Clang.
Lo sviluppatore senior del kernel Linux Greg Kroah-Hartman mi ha detto che crede che "i driver sono probabilmente il primo posto in cui" Rust appare in Linux poiché "sono le 'foglie finali' dell'albero delle dipendenze nei sorgenti del kernel. Dipendono dal core" funzionalità del kernel, ma nulla dipende da loro."
Questo accade ormai da diversi anni. Alla Linux Plumbers Conference virtuale del 2020, in cui i migliori sviluppatori del kernel Linux discutono del futuro di Linux, è stata introdotta l'idea di introdurre Rust come secondo linguaggio del kernel.
Anche se Linus Torvalds è sicuro, Linux non finirà per essere scritto in Rust. Ma poi non è questo l'obiettivo. Nessuno riscriverà i 25 milioni di righe di C del kernel in Rust.
Guidati da Josh Triplett, responsabile del linguaggio Rust, e Nick Desaulniers, un ingegnere di Google, hanno proposto di utilizzare il linguaggio Rust a livello di sistema all'interno del kernel. Perché? Perché è molto più sicuro di C, soprattutto nella gestione degli errori di memoria.
Come ha spiegato Ryan Levick, uno dei principali sostenitori degli sviluppatori cloud di Microsoft, "Rust è completamente sicuro per la memoria". Poiché circa due terzi dei problemi di sicurezza possono essere ricondotti alla cattiva gestione della memoria, questo è un notevole miglioramento. Inoltre, "Rust previene questi problemi di solito senza aggiungere alcun sovraccarico di runtime", ha affermato Levick.
Torvalds vede i vantaggi. Pur incoraggiando un approccio lento ma costante all'introduzione di Rust in Linux, ha anche affermato che l'uso delle interfacce Rust per i driver e altri programmi non core del kernel ha senso: "Sono convinto che accadrà. Potrebbe non essere Rust, ma succederà che avremo modelli diversi per scrivere questo genere di cose, e C non sarà l'unico."
Quindi, come Ojeda ha detto a ZDNet quest'estate, "Il progetto non è finito, ma siamo pronti a essere integrati se i manutentori di alto livello accettano le modifiche attuali e preferiscono che lavoriamo all'interno del kernel. La maggior parte di il lavoro è ancora davanti a noi."
Comunque, il lavoro è ben avviato adesso. Mi aspetto di vedere il primo codice Rust nel kernel Linux nel 2022.