Rilascio del sistema operativo Redox OS 0.8 scritto in Rust

È stato pubblicato il rilascio del sistema operativo Redox 0.8, 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 offerti gruppi demo da 768 MB, immagini con un ambiente grafico di base (256 MB) e strumenti console per sistemi server (256 MB). Gli assembly vengono generati per l'architettura x86_64 e sono disponibili per sistemi con UEFI e BIOS. Oltre all'ambiente grafico Orbital, l'immagine demo include l'emulatore DOSBox, una selezione di giochi (DOOM, Neverball, Neverputt, sopwith, syobonaction), tutorial, il lettore musicale rodioplay e l'editor di testo Sodium.

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.

La nuova versione continua a lavorare per garantire che funzioni su hardware reale. Oltre all'architettura x86_64, è stata aggiunta la possibilità di lavorare su sistemi x32 a 86 bit (i686, Pentium II e successivi). È in corso il porting sulla CPU ARM64 (aarch64). L'esecuzione su hardware ARM reale non è ancora supportata, ma è possibile il caricamento con l'emulazione ARM64 in QEMU. Per impostazione predefinita, il sottosistema audio è attivato e viene fornito il supporto iniziale per configurazioni multi-monitor (sui sistemi con framebuffer UEFI). Le apparecchiature supportate nel sistema operativo Redox includono chip audio AC'97 e Intel HD Audio, uscita grafica tramite VESA BIOS o UEFI GOP API, 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 innovazioni:

  • Le immagini di avvio per i sistemi con BIOS ed EFI sono state unite.
  • L'implementazione delle chiamate di sistema clone ed exec è stata spostata nello spazio utente.
  • Il processo di download è stato semplificato. È stato implementato un programma bootstrap, che viene lanciato dal kernel e fornisce un ulteriore caricamento dei file ELF, come il processo init.
  • Aggiunto programma intensificato per supportare programmi setuid come sudo.
  • Per semplificare la creazione e l'installazione dei processi in background è stato proposto il pacchetto redox-daemon crate.
  • Il sistema di assemblaggio è stato riprogettato, rendendo possibile la creazione di architetture diverse in un unico albero dei sorgenti. Per semplificare l'assemblaggio di diverse configurazioni, viene proposto lo script build.sh. Aggiunto supporto per la creazione utilizzando il toolkit podman. L'assemblaggio del kernel, bootloader e initfs è unificato con altri pacchetti.
  • Aggiunta una configurazione demo per creare programmi di esempio non inclusi nell'immagine di avvio di base con un ambiente grafico.
  • Il supporto per il controllo del volume via software è stato aggiunto al sottosistema audio audio.
  • Aggiunto driver per chip audio basati su AC'97. Driver migliorato per i chip Intel HD Audio.
  • Aggiunto driver per controller IDE.
  • Supporto migliorato per le unità NVMe.
  • Driver PCI, PS/2, RTL8168, USB HID e VESA migliorati.
  • Il processo di installazione è stato riprogettato: bootloader, bootstrap, kernel e initfs si trovano ora nella directory /boot.
  • Il kernel ha semplificato la gestione della memoria e ha aggiunto la possibilità di manipolare gli spazi degli indirizzi dal livello utente.
  • Nella shell grafica Orbital è stato aggiunto il supporto per i sistemi multi-monitor, è stata migliorata l'elaborazione del cursore del mouse ed è stato aggiunto un indicatore per la modifica del volume. Il menu ha la capacità di dividere le applicazioni in categorie.

Fonte: opennet.ru

Aggiungi un commento