Автор оболочки Sway и языка Hare развивает новое микроядро Helios и OC Ares

Дрю ДеВолт (Drew DeVault) представил свой новый проект – микроядро Helios. В текущем виде проект находится на начальной стадии разработки и пока поддерживает только демонстрационную загрузку на системах с архитектурой x86_64. А дальнейшем планируют реализовать поддержку архитектур iscv64 и aarch64. Код проекта написан на близком к Си языке системного программирования Hare с ассемблерными вставками и распространяется под лицензией GPLv3. Для ознакомления с состоянием разработки подготовлен тестовый iso-образ (1 МБ).

Архитектура Helios построена с оглядкой на концепции микроядра
seL4, в котором компоненты для управления ресурсами ядра вынесены в пространство пользователя и для них применяются те же средства разграничения доступа, как и для пользовательских ресурсов. Микроядро предоставляет минимальные механизмы для управления доступом к физическому адресному пространству, прерываниям и ресурсам процессора, а высокоуровневые абстракции драйверы для взаимодействия с оборудованием реализуются отдельно поверх микроядра в форме задач, выполняемых на пользовательском уровне.

В Helios применяется модель разграничения доступа на основе “capability“. Ядро предоставляет примитивы для выделения страниц памяти, отражения физической памяти в адресное пространство, управления задачами и обработки обращений к портам аппаратных устройств. Помимо сервисов ядра, таких как управление виртуальной памятью, проектом также подготовлены драйверы для работы консоли через последовательный порт и BIOS VGA API. На следующем этапе разработки ядра будут обеспечены вытесняющая мнpогозадачность, IPC, PCI, обработка исключений, разбор таблиц ACPI и обработчики прерываний, работающие в пространстве пользователя. В более отдалённой перспективе планируется реализовать поддержку SMP, IOMMU и VT-x.

Что касается пространства пользователя, то в планах развитие низкоуровневых сервисов и системного менеджера Mercury, слоя совместимости с POSIX (Luna), коллекции драйверов Venus, окружения для разработчиков Gaia и фреймворка для тестирования ядра Vulcan. Разработка ведётся с оглядкой на использование поверх реального оборудования – на начальном этапе планируется создание драйверов ThinkPad, включая драйверы для GPU Intel HD, HD Audio и Intel Gigabit Ethernet. После этого ожидается появление драйверов для GPU AMD и плат Raspberry Pi.

Конечной целью проекта является создание полноценной операционной системы Ares со своим пакетным менеджером и графическим интерфейсом.
В качестве причины создание проекта упоминается тяга к экспериментам и работа как развлечение (принцип “just for fun”). Дрю ДеВолт любит ставить перед собой амбициозные цели и потом, несмотря на общий скептицизм, реализовывает их. Так было с пользовательским окружением Sway, почтовым клиентом Aerc, платформой совместной разработки SourceHut и языком программирования Hare. Но даже если новый проект не получит должного распространения, он послужит отправной точкой к разработке новых полезных систем. Например, разработанный для Helios отладчик планируется портировать на платформу Linux, а библиотеки для построения графического интерфейса не будут привязаны к платформе.


Release. Ссылка here.