Drew DeVault a présenté son nouveau projet : le micro-noyau Helios. Actuellement, le projet est au stade initial de développement et ne prend en charge qu'un chargement de démonstration sur des systèmes avec une architecture x86_64. Par la suite, il est prévu d'implémenter le support pour les architectures iscv64 et aarch64. Le code du projet est écrit dans un langage de programmation système proche du C, nommé Hare, avec des insertions en assembleur et est distribué sous la licence GPLv3. Un image ISO de test (1 Mo) a été préparée pour se familiariser avec l'état de développement.
L'architecture Helios est conçue en tenant compte des concepts du micro-noyau seL4, où les composants de gestion des ressources du noyau sont déplacés dans l'espace utilisateur, et où les mêmes mécanismes de contrôle d'accès que pour les ressources utilisateur sont appliqués. Le micro-noyau fournit des mécanismes minimaux pour gérer l'accès à l'espace d'adresses physique, aux interruptions et aux ressources processeur, tandis que des abstractions de plus haut niveau en tant que pilotes pour interagir avec le matériel sont mises en œuvre séparément au-dessus du micro-noyau sous la forme de tâches exécutées au niveau utilisateur.
Helios utilise un modèle de contrôle d'accès basé sur la « capacité ». Le noyau fournit des primitives pour l'allocation de pages mémoire, le mappage de la mémoire physique dans l'espace d'adresses, la gestion des tâches et le traitement des appels aux ports des dispositifs matériels. En plus des services du noyau, tels que la gestion de la mémoire virtuelle, des pilotes ont également été préparés pour faire fonctionner la console via le port série et l'API BIOS VGA. Lors de la prochaine étape de développement du noyau, la multitâche préemptive, la communication inter-processus (IPC), le PCI, le traitement des exceptions, l'analyse des tables ACPI et les gestionnaires d'interruption fonctionnant dans l'espace utilisateur seront assurés. À plus long terme, le support SMP, IOMMU et VT-x est prévu.
En ce qui concerne l'espace utilisateur, les plans incluent le développement de services de bas niveau et du gestionnaire système Mercury, d'une couche de compatibilité POSIX (Luna), de la collection de pilotes Venus, de l'environnement pour développeurs Gaia et du cadre de test du noyau Vulcan. Le développement se fait avec un souci d'utilisation sur du matériel réel — dans un premier temps, il est prévu de créer des pilotes pour ThinkPad, y compris des pilotes pour GPU Intel HD, HD Audio et Intel Gigabit Ethernet. Ensuite, des pilotes pour GPU AMD et des cartes Raspberry Pi sont attendus.
L'objectif final du projet est de créer un système d'exploitation complet Ares avec son propre gestionnaire de paquets et une interface graphique. La raison de la création du projet est mentionnée comme une envie d'expérimenter et de travailler par plaisir (principe « juste pour le fun »). Drew DeVault aime se fixer des objectifs ambitieux et les réaliser malgré le scepticisme général. C'était le cas avec l'environnement utilisateur Sway, le client mail Aerc, la plateforme de développement collaboratif SourceHut et le langage de programmation Hare. Mais même si un nouveau projet n'obtient pas la diffusion souhaitée, il servira de point de départ au développement de nouveaux systèmes utiles. Par exemple, le débogueur développé pour Helios est prévu pour être porté sur la plateforme Linux, et les bibliothèques pour construire l'interface graphique ne seront pas liées à la plateforme.

Source : opennet.ru
