È disponibile il rilascio del progetto ToaruOS 1.14, un sistema operativo simile a Unix sviluppato da zero, con il proprio kernel, bootloader, libreria standard C, gestore pacchetti, componenti per lo spazio utente e interfaccia grafica con gestore di finestre composito. In questa fase di sviluppo, le capacità del sistema sono sufficienti per eseguire Python 3 e GCC. Il codice del progetto è scritto in C e distribuito sotto licenza BSD. È stato preparato un'immagine live da 14 MB, che può essere testata su QEMU, VMware o VirtualBox.

Il progetto è iniziato nel 2010 all'Università dell'Illinois ed è stato inizialmente sviluppato come un lavoro di ricerca nella creazione di nuove interfacce grafiche composite. Dal 2012, lo sviluppo si è trasformato nel sistema operativo ToaruOS, che è iniziato come progetto studentesco e successivamente è cresciuto in un hobby da weekend, sostenuto da una comunità che si è formata attorno al progetto. Nella sua attuale versione, il sistema è dotato di un gestore di finestre composito, supporta file eseguibili dinamicamente collegati in formato ELF, multitasking e stack grafico e di rete.
La fornitura include una porta del linguaggio di programmazione Python 3.6, utilizzata per lo sviluppo di alcune applicazioni grafiche specifiche per ToaruOS, come un gestore di pacchetti, un editor grafico, un visualizzatore PDF, una calcolatrice e giochi semplici. Tra i programmi di terze parti portati su ToaruOS ci sono Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatori di Super Nintendo, Bochs e così via.
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. La maggior parte dei driver per dispositivi è fornita in questa forma, inclusi i driver per disco (PATA e ATAPI), file system EXT2 e ISO9660, framebuffer, tastiere, mouse, schede di rete (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chip audio (Intel AC'97), e aggiunte di VirtualBox per sistemi guest.
Tra i primitivi forniti dal kernel ci sono flussi Unix, TTY, file system virtuale, multiprocessing, IPC, memoria condivisa, multitasking e altre funzionalità tipiche. Viene utilizzato il file system ext2. Per l'interazione con il kernel è fornita un'implementazione del pseudo-file system /proc, creata per analogia con Linux.
I piani per il 2021 includono la garanzia di operatività su architettura a 64 bit x86-64 (attualmente, le versioni sono disponibili solo per sistemi a 32 bit x86) e il supporto per sistemi multiprocessore (SMP). Tra gli altri obiettivi c'è il miglioramento della compatibilità con le specifiche POSIX per la gestione dei segnali e dei metodi di sincronizzazione, l'adeguamento della libreria standard C al livello di Newlib, l'implementazione di un proprio compilatore per il linguaggio C e degli strumenti per lo sviluppo.
Il progetto prevede anche lo sviluppo di un linguaggio di programmazione dinamico, Kuroko, progettato per sostituire Python nello sviluppo di utilità e applicazioni per il sistema. Il linguaggio supporta la compilazione in bytecode e l'interpretazione, e la sua sintassi ricorda Python (è posizionato come un dialetto ridotto di Python con definizione esplicita delle variabili) e si distingue per la sua realizzazione molto compatta. L'interprete del bytecode fornisce un garbage collector e supporta la multithreading senza utilizzare un blocco globale. Il compilatore e l'interprete possono essere raccolti in forma di una piccola libreria condivisa (~500 KB), integrabile con altri programmi e ampliabile tramite C API. Oltre a ToaruOS, il linguaggio può essere utilizzato in Linux, macOS, Windows e eseguito in browser con supporto per WebAssembly.
Nel nuovo rilascio di ToaruOS, l'attenzione principale è stata rivolta allo sviluppo della libreria standard C e al linguaggio di programmazione Kuroko. Ad esempio, sono state aggiunte funzioni matematiche a libc, necessarie per calcolare correttamente i parametri di illuminazione nel gioco Quake. È stata ripristinata la possibilità di avviarsi in VirtualBox in modalità EFI. La dimensione dell'immagine ISO è stata ridotta grazie all'applicazione della compressione dell'immagine del disco RAM.
Nel nuovo rilascio del linguaggio Kuroko 1.1 è stata aggiunta il supporto per async e await, è stata implementata il multithreading, è stata migliorata la compatibilità con Python 3, è stato realizzato il supporto per assegnazioni multiple di valori, sono stati ampliati gli strumenti per scrivere gestori nel linguaggio C, è stato introdotto il supporto per l'annotazione dei tipi per le funzioni, sono state aggiunte le parole chiave «yield» e «yield from», sono stati integrati i moduli os, dis, fileio e time, sono stati implementati nuovi metodi in str, list, dict e bytes, e è stato aggiunto il supporto per la precompilazione in bytecode, con la licenza cambiata in MIT (in precedenza era una combinazione di MIT e ISC).
Fonte: opennet.ru
