Drew DeVault hat sein neues Projekt vorgestellt – den Mikrokernel Helios. Derzeit befindet sich das Projekt in der frühen Entwicklungsphase und unterstützt bislang nur eine Demoladung auf Systemen mit der x86_64-Architektur. Zukünftig ist geplant, Unterstützung für die Architekturen iscv64 und aarch64 umzusetzen. Der Projektcode ist in der systemnahen Programmiersprache Hare, die nahe am C liegt und mit Assembler-Einfügungen arbeitet, verfasst und wird unter der GPLv3-Lizenz veröffentlicht. Um einen Einblick in den Entwicklungsstand zu geben, wurde ein Test-ISO-Abbild (1 MB) bereitgestellt.
Die Architektur von Helios basiert auf den Konzepten des Mikro-Kernels seL4, bei dem die Komponenten zur Verwaltung der Kernel-Ressourcen in den Benutzerraum verlagert werden. Für diese werden dieselben Zugriffssteuerungsmechanismen verwendet wie für Benutzerressourcen. Der Mikro-Kernel bietet minimale Mechanismen zur Verwaltung des Zugriffs auf den physischen Adressraum, Interrupts und CPU-Ressourcen, während hochgradige Abstraktionen in Form von Treibern zur Interaktion mit der Hardware separat über dem Mikro-Kernel in Form von Aufgaben umgesetzt werden, die auf Benutzerebene ausgeführt werden.
In Helios wird ein Zugriffssteuerungsmodell auf Basis von "Capability" verwendet. Der Kernel bietet primitive Funktionen zur Zuweisung von Speicherseiten, zur Abbildung physischer Speicher in den Adressraum, zur Aufgabenverwaltung und zur Bearbeitung von Hardware-Portanfragen. Neben den Kern-Diensten, wie dem Management des virtuellen Speichers, wurden auch Treiber für den Konsolenzugriff über den seriellen Port und die BIOS VGA API erstellt. In der nächsten Phase der Kernel-Entwicklung werden Funktionen wie verdrängende Multitasking, IPC, PCI, Ausnahmebehandlung, das Parsen von ACPI-Tabellen und Interrupt-Handler, die im Benutzerspeicher arbeiten, bereitgestellt. In ferner Zukunft ist die Implementierung von SMP-, IOMMU- und VT-x-Unterstützung geplant.
Was den Benutzerspeicher betrifft, umfasst die Planung die Weiterentwicklung von Low-Level-Diensten und dem Systemmanager Mercury, einer POSIX-Kompatibilitätsschicht (Luna), der Treibersammlung Venus, der Entwicklerumgebung Gaia und dem Test-Framework Vulcan. Die Entwicklung erfolgt mit Blick auf die Nutzung auf echter Hardware — zu Beginn ist die Erstellung von Treibern für ThinkPad vorgesehen, einschließlich Treibern für die Intel HD GPU, HD Audio und Intel Gigabit Ethernet. Danach werden Treiber für AMD GPUs und Raspberry Pi-Platten erwartet.
Das letztendliche Ziel des Projekts ist die Schaffung eines vollwertigen Betriebssystems Ares mit einem eigenen Paketmanager und grafischen Benutzeroberfläche. Als Grund für die Entstehung des Projekts wird die Neigung zu Experimenten und die Arbeit als Freizeitgestaltung (das Prinzip „just for fun“) genannt. Drew DeVolt setzt sich gerne ambitionierte Ziele und setzt diese dann trotz allgemeiner Skepsis um. So war es beim benutzerdefinierten Umfeld Sway, beim E-Mail-Client Aerc, bei der Plattform für gemeinsame Entwicklungen SourceHut und bei der Programmiersprache Hare. Selbst wenn das neue Projekt nicht den erwarteten Erfolg hat, wird es als Ausgangspunkt für die Entwicklung neuer nützlicher Systeme dienen. Zum Beispiel wird der für Helios entwickelte Debugger geplant, auf die Linux-Plattform portiert zu werden, während die Bibliotheken zur Erstellung grafischer Benutzeroberflächen plattformunabhängig bleiben werden.

Quelle: opennet.ru
