Non è esclusa la possibilità di integrare il supporto Rust nel kernel Linux 5.20

Alla conferenza Open Source Summit 2022 in corso in questi giorni, nella sezione FAQ, Linus Torvalds ha menzionato la possibilità di un'integrazione precoce nel kernel Linux dei componenti da sviluppare Driver di dispositivo in Rust.

Quindi è stato detto che le patch abilitate per Rust potrebbero essere accettate nel prossimo log delle modifiche che costituisce la composizione del kernel 5.20, prevista per la fine di settembre.

Va ricordato che dallo scorso anno Rust è diventato uno dei preferiti da inserire in vari importanti progetti e che nel tempo trascorso sono già stati eseguiti lavori relativi all'implementazione del supporto Rust.

Tra i rinomati progetti che si interessano alla ruggine dall'anno scorso, possiamo evidenziare, ad esempio, Android, poiché era interessato a Ruggine perché permette ottenere prestazioni vicine ai linguaggi C e C++, consentendone l'utilizzo per sviluppare parti di basso livello della piattaforma e componenti per interfacciarsi con l'hardware.

Per garantire la sicurezza del codice C e C ++, Android utilizza l'isolamento sandbox, l'analisi statica e i test di fuzzing. Le capacità di isolamento della sandbox sono limitate e hanno raggiunto il limite delle loro capacità (un'ulteriore frammentazione nei processi non è pratica dal punto di vista del consumo di risorse)

Tra i limiti dell'utilizzo della sandbox, citano l'elevato overhead e il maggiore consumo di memoria causato dalla necessità di generare nuovi processi, nonché la latenza aggiuntiva associata all'uso di IPC.

Rust-Android
Articolo correlato:
Rust è già uno dei preferiti per lo sviluppo Android

D'altra parte, non dobbiamo dimenticarlo Linus Torvalds ha anche espresso la sua opinione su Rust e in quale passato a rivedere l'attuazione patch di possibilità per impostare i driver della lingua Rust nel kernel Linux e ha espresso alcune critiche.

Le lamentele maggiori sono state causate da il potenziale di fuga "Il panico dei guasti in fase di esecuzione" in situazioni sbagliate, ad esempio, in una situazione di memoria insufficiente, quando le operazioni di allocazione dinamica della memoria, comprese le operazioni del kernel, potrebbero non riuscire.

Torvald ha affermato che una tale attenzione al kernel è fondamentalmente inaccettabile, E se non capisci questo punto, puoi rifiutare completamente qualsiasi codice che cerchi di utilizzare un tale approccio. D'altra parte, lo sviluppatore della patch era d'accordo con il problema e lo considerava risolvibile.

Linus Torvalds
Articolo correlato:
Rust non era esente dalle critiche di Linus Torvalds

Ma sono passati diversi mesi da quando Linus ha dato il suo feedback ed è stato fatto un duro lavoro per migliorare l'implementazione. Come tale, una richiesta pull per il core non è stata ancora inviata a Torvalds, ma il set di patch è stato ulteriormente rivisto, le note chiave rimosse, testate sul ramo linux-next per un po' di tempo e portato a uno stato adatto per costruire livelli di astrazione su sottosistemi del kernel, scrivere driver e moduli.

Il supporto per la ruggine è disponibile come opzione che non è abilitato per impostazione predefinita e non comporta l'inclusione di Rust tra le dipendenze di build richieste per il kernel.

Le modifiche proposte consentono di utilizzare Rust come seconda lingua per sviluppare driver e moduli del kernel. L'uso di Rust per sviluppare driver ti consentirà di creare driver migliori e più sicuri con il minimo sforzo, senza problemi come l'accesso a un'area di memoria dopo averla liberata, i puntatori nulli di dereferenziazione e gli overflow del buffer.

La sicurezza della memoria è 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. Rust fornisce anche una 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.


Lascia un tuo commento

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

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  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.