Josh Triplett, che lavora presso Intel e fa parte del comitato che supervisiona lo sviluppo di Crates.io, parlando all'Open Source Technology Summit
In un gruppo di lavoro in fase di creazione, gli sviluppatori di Rust, insieme agli ingegneri di Intel, prepareranno le specifiche che definiscono le funzionalità che devono essere implementate in Rust per la programmazione dei sistemi. La programmazione del sistema spesso richiede manipolazioni di basso livello, come l'esecuzione di istruzioni privilegiate del processore e l'ottenimento di informazioni dettagliate sullo stato del processore. Tra le funzionalità simili già sviluppate per Rust, si segnala il supporto per strutture senza nome, unioni, inserti in linguaggio assembly (la macro "asm!") e il formato numerico in virgola mobile BFLOAT16.
Josh crede che il futuro della programmazione di sistema appartenga a Rust e che il linguaggio C nelle realtà moderne stia rivendicando il posto che negli anni passati era occupato dall'Assembly. Ruggine
non solo solleva gli sviluppatori dai problemi inerenti al linguaggio C che sorgono a causa del lavoro di basso livello con la memoria, ma offre anche l'opportunità di utilizzarlo nello sviluppo di moderni paradigmi di programmazione.
In corso
Josh ha avuto l'idea di aggiungere la possibilità di sviluppare driver nel kernel Linux nel linguaggio Rust, che consentirebbe di creare driver più sicuri e migliori con il minimo sforzo, esenti da problemi come l'accesso alla memoria dopo la liberazione, null dereferenziazioni dei puntatori e sovraccarichi del buffer.
Greg Kroah-Hartman, responsabile del mantenimento del ramo stabile del kernel Linux, ha espresso la sua disponibilità ad aggiungere al kernel un framework per lo sviluppo di driver nel linguaggio Rust se presenta vantaggi reali rispetto a C, ad esempio, fornirà sicurezza collegamenti sull'API del kernel. Inoltre, Greg considera questo framework solo come un'opzione, non attiva di default, in modo da non includere Rust come dipendenza di build dal kernel.
Si è scoperto che diversi team stanno già lavorando in questa direzione. Ad esempio, gli sviluppatori dell'azienda "Fish in a Barrel"
Parallelo
Non tutte le funzionalità previste sono state ancora implementate, ma il framework è già abbastanza adatto al lavoro ed è stato utilizzato per scrivere un driver funzionante per il controller Ethernet USB LAN9512 fornito nella scheda Raspberry Pi 3. Il driver smsc95xx esistente, scritto da in Linguaggio C. Va notato che la dimensione del modulo e il sovraccarico dei componenti runtime durante lo sviluppo di un driver in Rust sono insignificanti, il che consente di utilizzare il framework per dispositivi con risorse limitate.
Fonte: opennet.ru