È stato pubblicato il rilascio del sistema operativo Redox 0.8, progettato utilizzando il linguaggio Rust e il concetto di microkernel. I progressi del progetto sono distribuiti con licenza MIT. Per testare Redox OS sono disponibili build dimostrative di 768 MB, insieme a immagini con un ambiente grafico di base (256 MB) e strumenti da console per sistemi server (256 MB). Le build sono state create per l'architettura x86_64 e sono disponibili per sistemi con UEFI e BIOS. L'immagine dimostrativa, oltre all'ambiente grafico Orbital, include l'emulatore DOSBox, una selezione di giochi (DOOM, Neverball, Neverputt, sopwith, syobonaction), programmi didattici, il lettore musicale rodioplay e l'editor di testo Sodium.
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.
Nel nuovo rilascio è proseguito il lavoro per garantire il funzionamento su hardware reale. Oltre all'architettura x86_64, è stata aggiunta la possibilità di operare su sistemi a 32 bit x86 (i686, Pentium II e successivi). È in corso il porting su CPU ARM64 (aarch64). Al momento non è supportato il funzionamento su hardware ARM reale, ma è possibile l'avvio tramite emulazione ARM64 in QEMU. La sottosistema audio è attivata per impostazione predefinita e sono garantiti i primi supporti per configurazioni multi-monitor (su sistemi con framebuffer UEFI). Tra l'hardware supportato da Redox OS ci sono i chip audio AC’97 e Intel HD Audio, uscita video tramite API VESA BIOS o UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), dispositivi di input (tastiere, mouse, touchpad), SATA (AHCI, IDE) e NVMe. Il supporto per Wi-Fi e USB non è ancora pronto (USB funziona solo in QEMU).
Altre novità:
- Le immagini di avvio per sistemi con BIOS ed EFI sono state unificate.
- L'implementazione delle chiamate di sistema clone ed exec è stata trasferita nello spazio utente.
- Il processo di avvio è stato semplificato. È stato introdotto un programma bootstrap, avviato dal kernel, che gestisce il caricamento successivo dei file ELF, come il processo init.
- È stata aggiunta una programmazione escalated per garantire il funzionamento di programmi setuid come sudo.
- Per semplificare la creazione e l'installazione di processi in background, è stato proposto il pacchetto crate redox-daemon.
- È stato rivisto il sistema di build, che ora consente la compilation per diverse architetture all'interno di un unico albero di sorgenti. Per semplificare la compilazione di diverse configurazioni, è stato proposto uno script build.sh. È stata aggiunta la supporto per la build utilizzando gli strumenti podman. La compilazione del kernel, del bootloader e dell'initfs è ora unificata con gli altri pacchetti.
- È stata aggiunta una configurazione dimostrativa per la compilazione di esempi di programmi che non fanno parte dell'immagine di avvio di base con ambiente grafico.
- Nel sottosistema audio audiod è stata aggiunta la supporto per la gestione del volume via software.
- È stato aggiunto un driver per i chip audio basati su AC'97. È stato migliorato il driver per i chip Intel HD Audio.
- È stato aggiunto un driver per i controller IDE.
- È stata migliorata la supporto per gli SSD NVMe.
- Sono stati migliorati i driver PCI, PS/2, RTL8168, USB HID, VESA.
- È stata rivista l'organizzazione del processo di installazione: bootloader, bootstrap, kernel e initfs sono ora collocati nella directory /boot.
- Nel core è semplificata la gestione della memoria, è stata aggiunta la possibilità di manipolare gli spazi indirizzabili dal livello utente.
- Nell'interfaccia grafica O rbital è stata aggiunta la supporto per sistemi multi-monitor, migliorata la gestione del cursore del mouse e aggiunto un indicatore per la modifica del volume. Nel menu è stata implementata la possibilità di suddividere le applicazioni per categorie.
Fonte: opennet.ru
