Uno sviluppatore offre una reimplementazione di GNU Coreutils in Rust 

gnu-coreutils-ruggine

L'uso di Rust per questo progetto contribuirà ad accelerare questo processo poiché molti potenziali bug vengono completamente eliminati.

Sylvestre Ledru ha iniziato a lavorare su una reimplementazione di GNU Coreutils in Rust durante la pandemia di COVID-19 e lo ha presentato la scorsa settimana durante l'edizione 2023 di FOSDEM. Lo sforzo chiamato uutils è ora impacchettato da molte distribuzioni Linux ed è utilizzato anche da un famoso social network attraverso il progetto Yocto.

I confronti tra i linguaggi Rust e C++ hanno un filo conduttore: evidenziare la superiorità di Rust rispetto a C++ in termini di sicurezza della memoria. L'editor di RisingWave spiega perché ha riscritto da zero il suo DBMS cloud nativo in Rust dopo aver lasciato il progetto C++.

“Rust garantisce la memoria e la sicurezza dei thread in fase di compilazione introducendo regole di proprietà. Va oltre RAII, un meccanismo di gestione della memoria comunemente usato in C++. Ha due vantaggi. La prima è ovvia: una volta che il compilatore Rust avrà convalidato il nostro programma, non avremo errori di segmento o race condition in fase di esecuzione, che richiederebbero decine di ore di debug, specialmente in una base di codice altamente concorrente e per lo più asincrona. Il secondo è più sottile: il compilatore di Rust limita semplicemente i tipi di errori, il che riduce i frammenti di codice strettamente nidificati che possono causare tali comportamenti difettosi. La replica degli errori è notevolmente migliorata utilizzando l'esecuzione deterministica. »

GNU Coreutils è un pacchetto dal progetto GNU che contiene molti strumenti di base necessari per i sistemi operativi simili a Unix: cp (copia un file o una directory), mkdir (crea una directory), ecc. Uno sviluppatore offre una reimplementazione nel linguaggio Rust.

Uno degli obiettivi: rendere il pacchetto utilizzabile su altri sistemi operativi: Windows, macOS, Android, FreeBSD, ecc. La mossa arriva per ravvivare il dibattito sulla questione se continuare ad avviare nuovi progetti in C e C++ o semplicemente optare per il linguaggio Rust.

“Il linguaggio Rust offre garanzie di sicurezza per impostazione predefinita quando si tratta di gestione della memoria. Questo non è il caso di C e C++, il cui utilizzo in Mozilla è causa di problemi di sicurezza della memoria”, sottolinea Sylvestre Ledru.

Tuttavia, Bjarne Stroustrup non è d'accordo sul fatto che i confronti tra Rust e C++ limitino la nozione di protezione del software a quella di protezione della memoria:

“Non esiste una definizione univoca della nozione di 'sicurezza' e possiamo ottenere una varietà di tipi di sicurezza attraverso una combinazione di stili di programmazione, librerie di supporto e sfruttando l'analisi statica. Bjarne Stroustrup suggerisce quindi che ciò che si può ottenere dal C++ in termini di sicurezza del software dipende, tra l'altro, dallo sviluppatore e, in particolare, dalla conoscenza degli strumenti che il linguaggio offre, dalla sua padronanza del compilatore, ecc.

Gli ingegneri di Google, consapevoli di ciò che C++ offre loro come possibilità, hanno intrapreso la creazione di un verificatore di prestiti in questo linguaggio. È una funzionalità del compilatore Rust che garantisce la sicurezza della memoria attraverso la gestione dell'allocazione dei puntatori di memoria.

squadra di Google, la cui pubblicazione è apparsa nel terzo trimestre dell'anno precedente, giunto alla conclusione di che il sistema simile al C++ non si presta a un simile esercizio. E a che la sicurezza della memoria in C++ può essere raggiunta con controlli durante l'esecuzione del programma. In altre parole, è con il codice C++ lento che è possibile raggiungere un livello di sicurezza equivalente a quello di Rust.

Il rilascio dell'editor RisingWave arriva mentre Rust si distingue da altri linguaggi che sono stati presentati per anni come alternative a C e C++. In effetti, il kernel Linux sta diventando sempre più aperto al linguaggio di programmazione dei sistemi di Mozilla.


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.