Dopo un anno e mezzo di sviluppo, è stata rilasciata la versione 0.7 del sistema operativo Redox, sviluppato utilizzando il linguaggio Rust e il concetto di microkernel. Gli sviluppi del progetto sono distribuiti sotto la licenza MIT. Per testare Redox OS sono disponibili immagini di installazione e Live di dimensione 75 MB. Le build sono formulate per l'architettura x86_64 e sono disponibili per sistemi con UEFI e BIOS.
Nella preparazione di questo nuovo rilascio, l'attenzione principale è stata rivolta al funzionamento su hardware reale. Le principali novità:
- Il bootloader è stato completamente riscritto, unificando e scrivendo principalmente in Rust il codice per l'avvio su sistemi con BIOS e UEFI. La modifica del bootloader ha permesso di ampliare notevolmente la gamma di hardware supportato.
- Nel kernel, oltre alla correzione dei bug, sono stati effettuati lavori per migliorare le prestazioni e ampliare il supporto hardware. Le variabili specifiche per CPU sono state convertite per utilizzare il registro GS. È stata garantita la mappatura di tutta la memoria fisica ed è stato interrotto l'uso delle pagine di memoria ricorsive. Il codice assembly nelle inserzioni inline è stato riscritto per migliorare la compatibilità con le future versioni del compilatore.
- È stato aggiunto il supporto iniziale per l'architettura AArch64.
- È stata effettuata la transizione per gestire tutti i percorsi dei file in codifica UTF-8.
- Il codice per gestire la specifica ACPI AML (ACPI Machine Language) — uefi.org è stato spostato dal kernel al processo in background acpid, eseguito nello spazio utente.
- Il contenuto di Initfs è stato trasferito in un nuovo file, semplificando la creazione dei pacchetti.
- Il file system RedoxFS è stato riscritto e adattato per utilizzare il meccanismo CoW (Copy-on-Write), nel quale le modifiche non sovrascrivono le informazioni, ma vengono salvate in una nuova posizione, il che ha permesso un notevole incremento dell'affidabilità. Tra le nuove funzionalità di RedoxFS si segnala il supporto per aggiornamenti transazionali, la crittografia dei dati utilizzando l'algoritmo AES, e la certificazione dei dati e dei metadati tramite firme digitali. È garantito il riutilizzo del codice del file system nel sistema e nel bootloader.
- È proseguito il miglioramento della libreria standard C Relibc sviluppata dal progetto, in grado di funzionare non solo in Redox, ma anche in distribuzioni basate su kernel Linux. Le modifiche apportate hanno semplificato il porting di vari programmi su Redox e risolto problemi con molti programmi e librerie scritti in linguaggio C.
- È stata preparata una versione del compilatore rustc in grado di funzionare in Redox. Tra le attività rimanenti si segnala l'ottimizzazione delle prestazioni e l'adattamento del gestore di pacchetti cargo per lavorare nell'ambiente Redox.

Il sistema operativo si sviluppa secondo la filosofia Unix e incorpora alcune idee da SeL4, Minix e Plan 9. Redox utilizza il concetto di microkernel, dove a livello del kernel viene garantita solo l'interazione tra i processi e la gestione delle risorse, mentre tutte le altre funzionalità sono delegate a librerie che possono essere utilizzate sia dal kernel che dalle applicazioni utente. Tutti i driver vengono eseguiti nello spazio utente in ambienti sandbox isolati. Per garantire la compatibilità con le applicazioni esistenti, è fornito un layer POSIX speciale che consente l'esecuzione di molti programmi senza necessità di porting.
Il sistema adotta il principio "tutto è URL". Ad esempio, per una registrazione nel log può essere utilizzato l'URL "log://", per l'interazione tra i processi "bus://", per la comunicazione di rete "tcp://" e così via. I moduli, che possono essere implementati sotto forma di driver, estensioni del kernel e applicazioni utente, possono registrare i propri handler URL; ad esempio, è possibile scrivere un modulo per accedere alle porte di input/output e associarlo all'URL "port_io://", dopo di che può essere utilizzato per accedere alla porta 60 aprendo l'URL "port_io://60".
L'ambiente utente in Redox si basa sulla propria interfaccia grafica Orbital (non da confondere con un'altra interfaccia Orbital che utilizza Qt e Wayland) e sul toolkit OrbTk, che fornisce un API simile a Flutter, React e Redux. Come browser web viene utilizzato Netsurf. Il progetto sviluppa anche il proprio gestore di pacchetti, un insieme di utility standard (binutils, coreutils, netutils, extrautils), la shell ion, la libreria C standard relibc, un editor di testo simile a vim chiamato sodium, uno stack di rete e un file system. La configurazione è definita nel linguaggio Toml.
Fonte: opennet.ru
