Rilascio del sistema operativo Redox OS 0.7 scritto in Rust

Dopo un anno e mezzo di sviluppo è stato pubblicato il rilascio del sistema operativo Redox 0.7, sviluppato utilizzando il linguaggio Rust e il concetto di microkernel. Gli sviluppi del progetto sono distribuiti con licenza gratuita MIT. Per testare il sistema operativo Redox, vengono offerte installazione e immagini live di 75 MB. Gli assembly vengono generati per l'architettura x86_64 e sono disponibili per sistemi con UEFI e BIOS.

Durante la preparazione della nuova versione, l'obiettivo principale era garantire che funzionasse su hardware reale. Principali innovazioni:

  • Il bootloader è stato completamente riscritto, in cui il codice per l'avvio su sistemi con BIOS e UEFI è unificato e scritto principalmente in Rust. La modifica del bootloader ha ampliato significativamente la gamma di hardware supportato.
  • Oltre alla correzione dei bug, è stato svolto del lavoro nel kernel per migliorare le prestazioni ed espandere il supporto hardware. Le variabili specifiche della CPU sono state convertite per utilizzare il registro GS. Viene fornita la riflessione (mappatura) di tutta la memoria fisica, l'uso delle pagine di memoria ricorsive viene interrotto. Il codice assembly negli inserti in linea è stato riscritto per migliorare la compatibilità con le future versioni del compilatore.
  • Aggiunto il supporto iniziale per l'architettura AArch64.
  • È stata effettuata una transizione per elaborare tutti i percorsi di file nella codifica UTF-8.
  • Il codice per lavorare con la specifica ACPI AML (ACPI Machine Language) - uefi.org è stato spostato dal kernel al processo in background acpid in esecuzione nello spazio utente.
  • Il contenuto di Initfs è stato spostato in un nuovo file, semplificando la generazione dei pacchetti.
  • Il file system RedoxFS è stato riscritto e passato all'utilizzo del meccanismo CoW (Copy-on-Write), in cui le modifiche non sovrascrivono le informazioni, ma vengono salvate in una nuova posizione, il che ha notevolmente migliorato l'affidabilità. Le nuove funzionalità di RedoxFS includono il supporto per gli aggiornamenti transazionali, la crittografia dei dati utilizzando l'algoritmo AES, nonché l'autenticazione di dati e metadati con firme digitali. La condivisione del codice FS nel sistema e nel bootloader è garantita.
  • È continuato il miglioramento della libreria C standard Relibc sviluppata dal progetto, capace di funzionare non solo in Redox, ma anche in distribuzioni basate sul kernel Linux. Le modifiche hanno reso più semplice il porting di vari programmi su Redox e hanno risolto problemi con molti programmi e librerie scritte in C.
  • È stata preparata una versione del compilatore rusticc che può essere eseguita in Redox. I restanti compiti includono l'ottimizzazione delle prestazioni e l'adattamento del gestore dei pacchi cargo per lavorare nell'ambiente Redox.

Rilascio del sistema operativo Redox OS 0.7 scritto in Rust

Il sistema operativo è sviluppato secondo la filosofia Unix e prende in prestito alcune idee da SeL4, Minix e Plan 9. Redox utilizza il concetto di microkernel, in cui a livello del kernel viene fornita solo l'interazione tra i processi e la gestione delle risorse, e tutti gli altri la funzionalità è collocata in 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 compatibilità con le applicazioni esistenti, viene fornito uno speciale livello POSIX, che consente di eseguire molti programmi senza porting.

Il sistema utilizza il principio “tutto è un URL”. Ad esempio, l'URL "log://" può essere utilizzato per la registrazione, "bus://" per l'interazione tra processi, "tcp://" per l'interazione di rete, ecc. I moduli, che possono essere implementati sotto forma di driver, estensioni del kernel e applicazioni utente, possono registrare i propri gestori URL, ad esempio è possibile scrivere un modulo di accesso alla porta I/O e associarlo all'URL "port_io:// ", dopodiché potrai utilizzarlo per accedere alla porta 60 aprendo l'URL “port_io://60”.

L'ambiente utente in Redox è costruito sulla base della shell grafica di Orbital (da non confondere con un'altra shell Orbital che utilizza Qt e Wayland) e del toolkit OrbTk, che fornisce un'API simile a Flutter, React e Redux. Netsurf viene utilizzato come browser web. Il progetto sta inoltre sviluppando un proprio gestore di pacchetti, una serie di utilità standard (binutils, coreutils, netutils, extrautils), la shell dei comandi ion, la libreria C standard relibc, l'editor di testo simile a vim sodio, uno stack di rete e un file sistema. La configurazione è impostata nella lingua Toml.

Fonte: opennet.ru

Aggiungi un commento