Rust, qualcosa con cui gli sviluppatori Linux sembrano essere d'accordo

Il linguaggio di programmazione Rust ha sempre mirato a sostituire C nello sviluppo del kernel Linux Ed è che con la maturazione di Rust, diversi sviluppatori hanno espresso un crescente interesse per il suo utilizzo nel kernel Linux.

Nella conferenza virtuale di Linux Plumbers 2020, il flusso di microconferenza di LLVM ha organizzato una sessione sulle domande aperte e barriere per l'accettazione a monte di Rust sul kernel Linux.

L'interesse per questo argomento è visibile, poiché questa sessione è stata la più impegnativa dell'evento 2020.

Quindi ora dovremmo riscrivere l'intero kernel Linux con il linguaggio Rust? Questa discussione non risale ad oggi ed è stata accentuata dall'apparizione della prima versione stabile di Rust nel 2015.

Viste le possibilità che offre Ruggine, alcuni suggeriscono di farlo. Quest'anno, alla conferenza Linux Plumbers di agosto, gli oratori hanno avuto di nuovo il tempo di discuterne.

E la cosa sorprendente è che sembrano essere d'accordo all'unanimità no non per riscrivere il codice esistente in Rust, ma perché lo sviluppo del kernel continui a usare Rust. Cioè, immaginano un mondo in cui nuovi pezzi di codice potrebbero essere scritti in Rust.

Questa sessione si è basata sul lavoro precedente di molti sviluppatori, incluso un discorso tenuto lo scorso anno da Alex Gaynor e Geoffrey Thomas al Linux Security Summit.

Alla conferenza, hanno presentato il loro lavoro sulla prototipazione dei moduli del kernel Rust e hanno sostenuto l'adozione di Rust nel kernel.

Hanno citato un lavoro che mostra che circa due terzi delle vulnerabilità del kernel assegnate a CVE in Android e Ubuntu sono correlate a problemi di sicurezza della memoria.

Hanno finito per spiegarlo Rust può evitare completamente questo tipo di errore grazie ad API più sicure abilitato dal tipo di sistema e dal verificatore del prestito.

Questo studio è riuscito già a convincere diversi manutentori Linus Torvalds, che ha supportato l'introduzione di Rust nel kernel. Thomas e Gaynor, Josh Triplett, co-presidente del team di linguaggio Rust e uno sviluppatore di kernel Linux di lunga data, così come altri sviluppatori interessati hanno partecipato alla discussione sull'argomento.

Hanno toccato brevemente il suo lavoro fino ad ora e alcuni dei suoi primi pensieri e domande prima di aprire la maggior parte del tempo alla discussione.

Questi sono l'uso delle API esistenti nel kernel, il supporto dell'architettura e una domanda sulla compatibilità ABI tra Rust e C.

In effetti, inizialmente lo credono l'introduzione di Rust nella struttura ad albero deve rispettare le API C esistenti. 

Tuttavia, tutti sentono che il diavolo è nei dettagli, e sia il lavoro svolto finora che la conversazione durante la sessione hanno rivelato alcune sfide aperte.

Ad esempio, Linux fa un uso massiccio di macro del preprocessore e funzioni inline, che non sono facilmente supportate dallo strumento bindgen e dall'interfaccia delle funzioni esterne di Rust.

In accordo con loro, attualmente l'unica implementazione matura di Rust è il compilatore rustc, che emette codice tramite LLVM.

Il kernel Linux supporta un'ampia varietà di architetture, molte delle quali non hanno un backend LLVM disponibile.

Da parte sua, Triplett ha suggerito che l'aggiunta di Rust al kernel avrebbe aiutato ad aumentare il supporto architettonico per Rust, citando la sua esperienza con il progetto Debian. Ha detto che l'introduzione del software Rust in Debian ha aiutato a motivare gli appassionati e gli utenti di architetture di nicchia a migliorare il supporto Rust, e spera di aggiungere il supporto al kernel per avere un effetto simile.

In particolare, era convinto che qualsiasi architettura con un backend LLVM sarebbe stata rapidamente compatibile con Rust. La discussione si è concentrata anche sulle implementazioni alternative di Rust come percorso per un supporto più ampio dell'architettura.

La sessione si è conclusa senza ulteriori traguardi specifici, ma sembra esserci un entusiasmo generale per il supporto di Rust Mods e un crescente accordo sui requisiti generali per questo supporto.


Lascia un tuo commento

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

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  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.

  1.   Autopilota suddetto

    Sembra l'inizio di una nuova era, compare la C inamovibile.

    Ciao Rust, ciao Linus Torvalds!