Drew DeVault ha presentato il suo nuovo progetto: il microkernel Helios. Nella sua attuale forma, il progetto è in fase iniziale di sviluppo e supporta per ora solo un caricamento dimostrativo su sistemi con architettura x86_64. In futuro, si prevede di implementare il supporto per le architetture iscv64 e aarch64. Il codice del progetto è scritto in un linguaggio di programmazione di sistema simile al C, chiamato Hare, con inserimenti in assembly e viene distribuito sotto licenza GPLv3. Per una panoramica sullo stato dello sviluppo, è stato preparato un'immagine iso di test (1 MB).
L'architettura Helios è costruita considerando le concezioni del microkernel seL4, nel quale i componenti per la gestione delle risorse del kernel sono spostati nello spazio utente e per questi si applicano gli stessi strumenti di separazione degli accessi utilizzati per le risorse utente. Il microkernel fornisce meccanismi minimi per la gestione dell'accesso allo spazio indirizzi fisico, agli interrupt e alle risorse della CPU, mentre le astrazioni di alto livello per i driver che interagiscono con l'hardware vengono implementate separatamente sopra il microkernel sotto forma di task eseguiti a livello utente.
In Helios viene applicato un modello di separazione degli accessi basato su "capability". Il kernel fornisce primitive per l'allocazione delle pagine di memoria, la mappatura della memoria fisica nello spazio degli indirizzi, la gestione dei task e l'elaborazione delle chiamate alle porte delle periferiche hardware. Oltre ai servizi del kernel, come la gestione della memoria virtuale, il progetto ha anche preparato driver per la gestione della console tramite porta seriale e API VGA BIOS. Nella prossima fase di sviluppo, il kernel sarà dotato di multitasking preemptive, IPC, PCI, gestione delle eccezioni, parsing delle tabelle ACPI e gestori di interrupt in esecuzione nello spazio utente. In una prospettiva più lontana, si prevede di implementare il supporto SMP, IOMMU e VT-x.
Per quanto riguarda lo spazio utente, c'è in programma lo sviluppo di servizi a basso livello e del gestore di sistema Mercury, di uno strato di compatibilità con POSIX (Luna), di una collezione di driver Venus, dell'ambiente di sviluppo Gaia e di un framework per il testing del kernel Vulcan. Lo sviluppo è orientato verso l'utilizzo su hardware reale: nella fase iniziale è previsto il rilascio dei driver ThinkPad, inclusi i driver per GPU Intel HD, HD Audio e Intel Gigabit Ethernet. Dopo di che ci si aspetta il rilascio dei driver per GPU AMD e delle schede Raspberry Pi.
L'obiettivo finale del progetto è la creazione di un sistema operativo completo Ares con un proprio gestore di pacchetti e interfaccia grafica. Come motivo per la creazione del progetto viene citata la propensione agli esperimenti e il lavoro come svago (il principio 'just for fun'). Drew DeVault ama porsi obiettivi ambiziosi e poi, nonostante il generale scetticismo, li realizza. Così è stato per l'ambiente desktop Sway, il client di posta Aerc, la piattaforma di sviluppo collaborativo SourceHut e il linguaggio di programmazione Hare. Ma anche se il nuovo progetto non avrà la diffusione adeguata, servirà da punto di partenza per lo sviluppo di nuovi sistemi utili. Ad esempio, il debugger sviluppato per Helios è previsto per essere portato su Linux, e le librerie per la creazione dell'interfaccia grafica non saranno legate a una piattaforma specifica.

Fonte: opennet.ru
