È stato pubblicato il rilascio del sistema operativo simile a Unix ToaruOS 2.1, scritto da zero e fornito con il proprio kernel, bootloader, libreria C standard, gestore pacchetti, componenti di spazio utente e interfaccia grafica con gestore finestre composito. Inizialmente, il progetto si è sviluppato presso l'Università dell'Illinois come lavoro di ricerca nel campo della creazione di nuove interfacce grafiche composite, ma successivamente si è trasformato in un sistema operativo autonomo. Il codice del progetto è scritto in linguaggio C e distribuito sotto licenza BSD. È stato preparato un immagine live da scaricare, di dimensioni 14,4 MB, che può essere testata in QEMU, VMware o VirtualBox.

Alla base di ToaruOS c'è un kernel che utilizza un'architettura modulare ibrida, che combina una base monolitica e strumenti per l'uso di moduli caricabili, in cui sono scritti la maggior parte dei driver di dispositivo esistenti, come i driver del disco (PATA e ATAPI), FS EXT2 e ISO9660, framebuffer, tastiere, mouse, schede di rete (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chip audio (Intel AC’97), oltre a estensioni di VirtualBox per sistemi guest. Il kernel supporta i thread Unix, TTY, FS virtuale, pseudo-FS /proc, multithreading, IPC, ramdisk, ptrace, memoria condivisa, multitasking e altre funzionalità tipiche.
Il sistema è dotato di un gestore finestre composito, supporta file eseguibili dinamicamente collegati nel formato ELF, multitasking, stack grafico e può eseguire Python 3 e GCC. Come sistema di file viene utilizzato ext2. Il bootloader supporta BIOS ed EFI. Lo stack di rete consente l'utilizzo dell'API dei socket in stile BSD e supporta le interfacce di rete, incluso il loopback.
Tra le applicazioni proprietarie spicca Bim, un editor di codice simile a Vi, che viene utilizzato negli ultimi anni per lo sviluppo di applicazioni specifiche per ToaruOS, come il gestore di file, l'emulatore di terminale, la barra grafica con supporto per widget, il gestore dei pacchetti e librerie per il supporto delle immagini (PNG, JPEG) e dei font TrueType. Per ToaruOS è stato portato un insieme di programmi come Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatore Super Nintendo, Bochs e altri.
Il progetto sta anche sviluppando un proprio linguaggio di programmazione dinamico, Kuroko, progettato per sostituire Python nello sviluppo di utilità e applicazioni utente per il sistema. La sintassi del linguaggio ricorda Python (posizionato come un dialetto semplificato di Python con una chiara definizione delle variabili) ed è caratterizzata da un'implementazione molto compatta. Supporta la compilazione e l'interpretazione del bytecode. L'interprete del bytecode fornisce un garbage collector, supporta il multithreading senza l'uso di un blocco globale. Compilatore e interprete possono essere assemblati come una piccola libreria condivisa (~500KB), integrabile con altri programmi e ampliabile tramite C API. Oltre a ToaruOS, il linguaggio può essere utilizzato su Linux, macOS, Windows e può essere eseguito in browser che supportano WebAssembly.
Nel nuovo rilascio:
- È stata aggiunta la supporto iniziale per l'architettura AArch64 (ARMv8), incluso un'opzione sperimentale per l'uso di ToaruOS sulla scheda Raspberry Pi 400 e nell'emulatore QEMU.
- Rivisitata la gestione e la trasmissione dei segnali ai processi nello spazio utente. Sono stati implementati le chiamate sigaction, sigprocmask, sigwait e sigsuspend.
- Migliorata la gestione della memoria nello spazio utente. È stata aggiunta la chiamata di sistema munmap.
- Nel gestore composito è stato implementato un effetto di sfocatura e rivisitata la gestione degli eventi alla modifica delle dimensioni della finestra.
- Migliorata la resa del terminale, implementata la resa ritardata e aggiunto un cache di glifi per i font TrueType.
- Ampliate le funzionalità del layout.
- Aggiunti meccanismi per impostare l'orologio, incluso l'implementazione della chiamata di sistema settimeofday e ampliate le funzionalità dell'utilità date.
- Migliorato lo stack di rete. Nell'utilità ifconfig è stata aggiunta la supporto per la configurazione degli indirizzi IPv4 e delle impostazioni di routing. Garantito il funzionamento dei socket ICMP. Aggiunta la supporto per la funzione recvfrom per i socket UDP e ICMP.
- Nel bootloader è stata aggiunta la possibilità di lavorare con tastiere USB.
- Nel menu contestuale del file manager è stata aggiunta un'opzione per eliminare file.
- Migliorata la visualizzazione dei grafici nel monitor di sistema.
- Aggiunta l'utilità grep con supporto per espressioni regolari.
- Migliorato l'output del comando ps (aggiunti colonne aggiuntive).

Fonte: opennet.ru
