Rilascio del sistema operativo ToaruOS 1.14 e del linguaggio di programmazione Kuroko 1.1

È disponibile il rilascio del progetto ToaruOS 1.14, che sviluppa un sistema operativo Unix-like scritto da zero con un proprio kernel, boot loader, libreria C standard, gestore di pacchetti, componenti in spazio utente e un'interfaccia grafica con un window manager composito. Allo stadio attuale di sviluppo, le capacità del sistema sono sufficienti per eseguire Python 3 e GCC. Il codice del progetto è scritto in C e distribuito sotto la licenza BSD. È stata preparata per il download un'immagine live di 14 MB, che può essere testata in QEMU, VMware o VirtualBox.

Rilascio del sistema operativo ToaruOS 1.14 e del linguaggio di programmazione Kuroko 1.1

Il progetto è iniziato nel 2010 presso l'Università dell'Illinois e si è sviluppato inizialmente come lavoro di ricerca nel campo della creazione di nuove interfacce grafiche composite. Dal 2012, lo sviluppo si è trasformato nel sistema operativo ToaruOS, sviluppato inizialmente come progetto studentesco, per poi diventare un hobby del fine settimana, raccolto dalla comunità che si è formata attorno al progetto. Nella sua forma attuale, il sistema è dotato di un window manager composito, supporta file eseguibili collegati dinamicamente in formato ELF, multitasking, grafica e stack di rete.

Il pacchetto include un port del linguaggio di programmazione Python 3.6, che viene utilizzato nello sviluppo di alcune applicazioni grafiche specifiche di ToaruOS, come un gestore di pacchetti, un editor grafico, un visualizzatore PDF, una calcolatrice e giochi semplici. I programmi di terze parti portati su ToaruOS includono Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatore Super Nintendo, Bochs, ecc.

ToaruOS si basa su un kernel che utilizza un'architettura modulare ibrida che combina un framework monolitico e strumenti per l'utilizzo di moduli caricabili, che costituiscono la maggior parte dei driver di dispositivo disponibili, come driver del 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), nonché componenti aggiuntivi VirtualBox per sistemi ospiti.

Le primitive fornite dal kernel includono thread Unix, TTY, file system virtuale, multithreading, IPC, memoria condivisa, multitasking e altre funzionalità standard. ext2 viene utilizzato come file system. Per interagire con il kernel è prevista un'implementazione pseudo-FS /proc, creata per analogia con Linux.

I piani per il 2021 includono il lavoro sull'architettura x64-86 a 64 bit (per ora, gli assembly vengono generati solo per i sistemi x32 a 86 bit) e il supporto per i sistemi multiprocessore (SMP). Altri obiettivi includono il miglioramento della compatibilità con le specifiche POSIX nel campo dei metodi di elaborazione e sincronizzazione dei segnali, portando la libreria C standard al livello Newlib e implementando il proprio compilatore del linguaggio C e strumenti di sviluppo.

Il progetto sta inoltre sviluppando un proprio linguaggio di programmazione dinamico, Kuroko, progettato per sostituire Python nello sviluppo di utilità e applicazioni personalizzate per il sistema. Il linguaggio supporta la compilazione e l'interpretazione del bytecode, la sua sintassi ricorda Python (è posizionato come un dialetto abbreviato di Python con definizione esplicita delle variabili) e ha un'implementazione molto compatta. L'interprete bytecode fornisce un garbage collector e supporta il multithreading senza utilizzare il blocco globale. Il compilatore e l'interprete possono essere compilati sotto forma di una piccola libreria condivisa (~500KB), integrata con altri programmi ed estensibile tramite l'API C. Oltre a ToaruOS, il linguaggio può essere utilizzato su Linux, macOS, Windows ed eseguito nei browser che supportano WebAssembly.

La nuova versione di ToaruOS si è concentrata sullo sviluppo della libreria C standard e del linguaggio di programmazione Kuroko. Ad esempio, a libc sono state aggiunte le funzioni matematiche necessarie per il calcolo corretto dei parametri di illuminazione nel gioco Quake. La possibilità di avviare VirtualBox in modalità EFI è stata migliorata. La dimensione dell'immagine ISO è stata ridotta utilizzando la compressione dell'immagine del disco RAM.

La nuova release del linguaggio Kuroko 1.1 aggiunge il supporto per async e wait, implementa il multithreading, migliora la compatibilità con Python 3, supporta assegnazioni di valori multipli, espande gli strumenti per scrivere handler nel linguaggio C, aggiunge il supporto per le annotazioni di tipo per le funzioni, aggiunge il 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, è stato aggiunto il supporto per la precompilazione in bytecode, la licenza è stata modificata è stato cambiato in MIT (in precedenza esisteva una combinazione di MIT e ISC).

Fonte: opennet.ru

Aggiungi un commento