Il sistema operativo Redox di Rust potrebbe mostrare a Linux alcuni nuovi trucchi

Il linguaggio Rust di Mozilla è stato concepito dai suoi progettisti come un'opzione per scrivere molti tipi di software in modo rapido e sicuro, inclusi i sistemi operativi completi.

Negli ultimi mesi un team di sviluppatori è stato impegnato a fare esattamente questo: usare Rust per creare Redox, un vero e proprio sistema operativo Unix-like progettato come un ripensamento radicale dell'approccio Linux.

Tabula rasa

Redox usa Rust per il suo codice a livello di kernel per fornire più considerazioni sulla sicurezza della memoria rispetto a quanto C consente di default. Ma il progetto non si limita a riscrivere Linux in una nuova lingua. Redox scarta tanto dalla versione Linux della tradizione Unix quanto ne conserva.

Come spiegato nel wiki del progetto e nei documenti di progettazione, Redox utilizza un set minimo di chiamate di sistema, un sottoinsieme deliberatamente più piccolo di quello supportato da Linux in modo da evitare il rigonfiamento legacy. Il sistema operativo utilizza anche un design microkernel per rimanere snello, in contrasto con il kernel monolitico di Linux.

Anche molti dei comportamenti interni del sistema operativo sono stati ripensati. Unix e Linux usano entrambi la nozione di ogni elemento come un file. Redox fa un ulteriore passo avanti e tratta tutto come un URL, quindi è semplice registrare i gestori di eventi e fornisce un modo coerente per eseguire altri tipi di astrazioni.

//github.com/redox-os/redox

Il piano, tuttavia, non è quello di sostituire Linux, ma di fornire un'utile alternativa che possa col tempo eseguire il software Linux così com'è. Ci sono già alcuni suggerimenti: sono supportati molti comandi Unix (e quindi Linux) comuni e c'è un porting work-in-progress del file system ZFS.

Un'altra rottura radicale da Linux non è nel software ma nelle licenze: l'intero progetto è concesso in licenza dal MIT e non GPL. La logica è che la licenza MIT incoraggia l'adozione a valle molto più prontamente della GPL, "poiché il downstream è ciò che conta davvero: la base di utenti, la comunità, la disponibilità".

La lunga strada da percorrere

Anche se gli ISO di Redox possono essere scaricati e avviati, è improbabile che Linux per Redox sia in produzione presto.

Per prima cosa, Redox non è stato testato, con molte funzionalità mancanti e molte incomplete. Gli sviluppatori di Redox ammettono anche che non sarà possibile stabilire la "completa compatibilità 1: 1 Posix" (perché il sistema operativo omette molte chiamate di sistema Unix), quindi il software Linux esistente avrà probabilmente bisogno di un livello di supporto su Redox per essere eseguito - un ostacolo a la sua adozione.

Anche la base di codice legacy di Linux non sarà facilmente ignorata. Decenni di sviluppo e migliaia di anni di lavoro umano sono stati investiti in esso e nell'ambiente di sviluppo del linguaggio C. Il linguaggio Rust, al contrario, esiste da alcuni anni e solo di recente ha raggiunto uno stato di stabilità sufficiente alla maggior parte delle persone per costruire con esso progetti grandi e ambiziosi.

Tuttavia, un progetto come Redox è prezioso. Se Redox può mantenere la sua promessa di essere più sicuro in base alla progettazione, molti degli scenari di dispositivi integrati attualmente presi di mira da Linux potrebbero essere meglio serviti da Redox. Mozilla ha già parlato di Rust come linguaggio per dispositivi Internet of Things, quindi questa sarebbe un'estensione naturale.

Redox può anche servire da esempio per affrontare i problemi del sistema operativo in modo diverso, esercitando una pressione evolutiva a lungo termine su Linux. Se Linux non sta andando da nessuna parte - tutti i segnali mostrano che non lo è - allora è meglio trovare modi per costringerlo a migliorare.