Pubblicata la quarta versione delle patch per il supporto del driver Rust su Linux

Miguel Ojeda, autore del progetto Rust-for-Linux, Teme ha recentemente presentato la quarta proposta per componenti del driver di dispositivo Rust per gli sviluppatori del kernel Linux da considerare.

Il supporto antiruggine è considerato sperimentale, ma è già stato concordato di essere incluso nel ramo linux-next ed è abbastanza maturo per iniziare a lavorare sui livelli di astrazione sopra i sottosistemi del kernel, oltre a scrivere driver e moduli. Lo sviluppo è finanziato da Google e dall'ISRG (Internet Security Research Group), che è il fondatore del progetto Let's Encrypt e promuove HTTPS e lo sviluppo di tecnologie per aumentare la sicurezza di Internet.

Per coloro che non sono ancora a conoscenza delle modifiche proposte, dovrebbero sapere che lo rendono possibile l'uso di Rust come seconda lingua per lo sviluppo di controller e moduli del nocciolo. Il supporto di Rust è presentato come un'opzione che non è abilitata per impostazione predefinita e non comporta l'inclusione di Rust tra le dipendenze di build richieste per il kernel.

Utilizzo 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, il dereferenziamento dei puntatori null e gli 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.

Rust fornisce anche protezione dall'overflow di 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.

Quali sono le novità della quarta rata?

In questa nuova versione delle patch presentate, si ricorda che i commenti fatti durante la discussione della prima, seconda e terza edizione delle patch hanno continuato ad essere eliminati.

Continueremo ad aggiornare finché non dipendiamo da alcuna funzionalità instabile;
a quel punto potremmo voler iniziare a dichiarare una versione minima di Rust
è supportato, come avviene, ad esempio, per GCC e Clang.

Allo stesso modo, abbiamo anche migrato all'edizione 2021 della lingua Rust.

Per quanto riguarda le altre modifiche apportate a questa nuova versione, l'annuncio menziona quanto segue:

  • Passato all'uso stabile di Rust 1.58.0 come compilatore di riferimento.
  • Le modifiche richieste per il progetto, non ancora incluse nel toolkit principale di Rust, includono il flag "-Zsymbol-mangling-version=v0" (previsto in Rust 1.59.0) e la modalità "maybe_uninit_extra" (prevista in Rust 1.60.0) .
  • Sono stati aggiunti controlli automatici per la disponibilità degli strumenti Rust e la loro idoneità ed è stata anche ampliata la possibilità di testare il supporto Rust sul sistema.
  • Vengono proposte nuove astrazioni per poter accedere alle tabelle di identificazione del dispositivo ("IdArray" e "IdTable") dal codice Rust.
  • Aggiunti livelli per le funzioni di chiamata relative al timer (frame dell'orologio).
  • I controller della piattaforma sono ora definiti tramite le implementazioni dei tratti.
  • È stata aggiunta una nuova macro per semplificare la registrazione dei conducenti in piattaforma ed è stato proposto un nuovo modello di driver generico.
  • Aggiunte nuove macro per le strutture "dev_*".
  • Aggiunti nuovi metodi "{read,write}*_relaxed" per il tipo IoMem .
  • Rimossa la proprietà FileOpener per semplificare le operazioni sui file.
  • Aggiunto il parametro "ThisModule" al numero di argomenti passati durante la registrazione del controller.
  • Viene proposto un modello tipico per la creazione di moduli del kernel nel linguaggio Rust.

Infine, se sei interessato a poter saperne di più su questa nuova versione, puoi consultare i dettagli nel seguente link


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.