È stato pubblicato il rilascio del sistema operativo Redox 0.8, sviluppato utilizzando il linguaggio Rust e il concetto di microkernel. I risultati del progetto sono distribuiti con licenza MIT. Per il test di Redox OS sono disponibili build dimostrative di 768 MB, insieme ad immagini con un ambiente grafico di base (256 MB) e strumenti da console per sistemi server (256 MB). Le build sono formate per l'architettura x86_64 e 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 di formazione, il lettore musicale rodioplay e l'editor di testo Sodium.
Il sistema operativo si sviluppa in base alla filosofia Unix e prende in prestito alcune idee da SeL4, Minix e Plan 9. Redox utilizza il concetto di microkernel, in cui a livello di kernel è garantita solo l'interazione tra processi e la gestione delle risorse, mentre tutta la funzionalità rimanente è delegata 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 la compatibilità con le applicazioni esistenti è fornita un'interfaccia POSIX speciale che consente di eseguire molti programmi senza la necessità di porting.
Nel sistema è applicato il principio "tutto è URL". Ad esempio, per la registrazione nei log può essere utilizzato l'URL "log://", per l'interazione tra processi "bus://", per l'interazione di rete "tcp://" e così via. I moduli, che possono essere realizzati sotto forma di driver, estensioni del kernel e applicazioni utente, possono registrare i propri gestori URL; ad esempio, è possibile scrivere un modulo per l'accesso alle porte di input/output e associarlo all'URL "port_io://", dopodiché può essere utilizzato per accedere alla porta 60 aprendo l'URL "port_io://60".
L'ambiente utente in Redox è costruito su una shell grafica proprietaria chiamata Orbital (non confondere con un'altra shell Orbital che utilizza Qt e Wayland) e su un toolkit chiamato OrbTk, che fornisce un'API simile a Flutter, React e Redux. Come browser web viene utilizzato Netsurf. Il progetto sta anche sviluppando un gestore di pacchetti proprietario, un insieme di utility standard (binutils, coreutils, netutils, extrautils), la shell dei comandi ion, la libreria C standard relibc, un editor di testo simile a vim chiamato sodium, lo stack di rete e il file system. La configurazione è definita in linguaggio Toml.
Nella nuova versione è proseguito il lavoro per garantire il funzionamento su hardware reale. Oltre all'architettura x86_64 è stata aggiunta la possibilità di funzionare su sistemi a 32 bit x86 (i686, Pentium II e successivi). È in corso il porting su CPU ARM64 (aarch64). Per il momento, il funzionamento su hardware ARM reale non è ancora supportato, ma è possibile avviare un'emulazione ARM64 in QEMU. Di default, il sottosistema audio è attivato e è fornito un supporto iniziale per configurazioni multi-monitor (su sistemi con framebuffer UEFI). Tra l'hardware supportato in Redox OS ci sono i chip audio AC’97 e Intel HD Audio, l'output grafico 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 unify.
- L'implementazione delle chiamate di sistema clone ed exec è stata spostata nell'user space.
- Il processo di avvio è stato semplificato. È stata introdotta un'applicazione bootstrap, avviata dal kernel e che garantisce l'avvio dei file ELF, come il processo init.
- È stato aggiunto il programma escalated per garantire il funzionamento di programmi setuid, come sudo.
- Per semplificare la creazione e l'installazione di processi in background è stato proposto un pacchetto crate chiamato redox-daemon.
- Il sistema di build è stato ristrutturato, permettendo la compilazione per diverse architetture in un'unica albero di sorgenti. Per semplificare la compilazione di diverse configurazioni è stato fornito uno script build.sh. È stato aggiunto il supporto per la compilazione utilizzando gli strumenti podman. La compilazione del kernel, del boot loader e dell'initfs è stata unificata con altri pacchetti.
- È stata aggiunta una configurazione dimostrativa per compilare esempi di programmi non inclusi nell'immagine di avvio di base con interfaccia grafica.
- È stata aggiunta al sistema audio audiod la gestione software del volume.
- Driver aggiunto per i chip audio basati su AC'97. Migliorato il driver per i chip Intel HD Audio.
- Driver aggiunto per i controller IDE.
- Migliorato il supporto per i dispositivi NVMe.
- Migliorati i driver PCI, PS/2, RTL8168, USB HID, VESA.
- Riorganizzata l'installazione: bootloader, bootstrap, kernel e initfs ora sono collocati nella directory /boot.
- Semplificato il lavoro con la memoria nel kernel, aggiunta la possibilità di manipolare gli spazi indirizzabili da livello utente.
- Nell'interfaccia grafica Orbital è stato aggiunto il supporto per sistemi multi-monitor, migliorata la gestione del cursore, aggiunto un indicatore per il volume. Nel menu è stata realizzata la possibilità di categorizzare le applicazioni.
Fonte: opennet.ru
