Durante l'ultimi mesi I sviluppatori di Linux anu discututu a pussibilità di permette l'usu di a lingua Rust per scrive novi driver di u dispositivu per u kernel.
L'annu passatu, i sviluppatori di u kernel Linux parenu avè ghjuntu à un accordu nantu à a materia, I sustenitori di Rust anu citatu un travagliu chì mostra chì circa dui terzi di e vulnerabilità di u kernel assignate CVE in Android è Ubuntu sò ligati à prublemi di sicurezza di memoria.
Dopu à sta dichjarazione, Linus Torvalds, ingegnere di software, creatore principale è sviluppatore di u kernel Linux, hà dettu in una entrevista chì e discussioni nantu à u tema seranu assai più impurtanti cà un longu post di Google nantu à a lingua.
Quandu hà dumandatu nantu à u suggerimentu di utilizà Rust, hà indicatu chì "A suluzione quì hè simplice: solu aduprà C ++ invece di Rust".
Eppo in marzu, u primu sustegnu hè statu lanciatue chì hà permessu à i driver Rust per esse posti in l'arburu Linux-Next per più teste prima di a so eventuale inclusione in u kernel principale.
Propiu daretu hè stata una "richiesta di cummentariu" ristampata nantu à a lista di mailing di u kernel nantu à a perspettiva di u codice Rust per u kernel Linux.
Miguel OjedaU sviluppatore di u kernel Linux hà iniziatu una proposta di Richiesta di Commenti (RFC) nantu à a lista di mailing di u kernel Linux.
U post di a lista di mailing delinea e credenze di i sviluppatori implicati in l'aghjunzione di u codice Rust à u kernel, i beneficii cum'è a sicurità di memoria mejorata, è più.
"Alcuni di voi anu nutatu in l'ultime settimane è mesi chì un tentativu seriu hè fattu per portà una seconda lingua à u kernel. Semu finalmente quì, cù un RFC chì aghjunghje supportu per Rust à u kernel Linux ", disse Miguel Ojeja. "Sapemu chì ci sò enormi costi è risichi implicati in l'introduzione di una nova lingua in u kernel", aghjunse.
U Rust for Linux Project Team trasfirìu da u compilatore Rust beta à aduprà versioni stabili, migrating ogni volta chì una nova versione hè liberata.
"Vulemu ringrazià Rust per travaglià cun noi nantu à queste opzioni per chì u kernel pò usà", disse Miguel.
Quandu aghjurnà u compilatore, a squadra hà sappiutu caccià alcune funzioni inestabile da a lista: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic è try_reserve.
In più di questu, hè evidenziatu chì alcune opzioni di modularizazione sò state aghjunte più à alloc per disattivà alcune funzioni inutili: no_rc è no_sync.
Upstream, per chì u casu d'usu di u kernel sia bè supportatu, o più precisamente, u "mix" di l'opzioni chì u kernel hà bisognu, u core Upstream hà ancu aghjuntu no_fp_fmt_parse.
Per d 'altra banda, Rust hà permessu una seria di diagnostichi supplementari per u compilatore Rust è Clippy. Una diferenza da C hè chì i diagnostichi di Rust sò un pocu più faciuli di disattivà in codice, chì hè più strettu in u casu generale.
dinù astrazioni è aghjurnamenti di driver sò stati implementati. U squadra hà aghjustatu astrazioni per i blocchi di flussu, callbacks di gestione di energia, memoria io (readX / writeX), chips irq è gestori di flussu d'altu livellu, chips gpio (inclusi chip irq), periferiche, periferiche amba è driver.
U sustegnu di u u controller hè rinfurzatu cù una infrastruttura indipendente di bus, Oggetti revocabili, mutex revocabili, iteratori di bit efficaci, diagnostichi di panicu megliu è wrappers di puntatori simplificati. Inoltre, hà migliuratu è simplificatu l'oggetti Ref (cumpatibile cù refcount_t) è rimpiazzatu tutti i casi Rust.
È un novu driver per i dispositi gpio PL061 hè statu implementatu è speditu cum'è patch RFC.
Infine si deve nutà chì U supportu di Rust hè sempre cunsideratu sperimentale. Tuttavia, u sustegnu hè abbastanza bonu chì i sviluppatori di u kernel si mettenu à travaglià in astrazioni Rust per i sottosistemi di scrittura è i cuntrolli è altri moduli. A serie attuale hè appena ghjunta nantu à Linux-next, cusì a prima corsa si farà sta settimana.
source: https://lkml.org/lkml
Sianu the first to comment