Введение

HelenOS — операционная система, построенная на архитектуре микроядра с многосерверной структурой. Исходный код HelenOS написан на языке C и распространяется под лицензией BSD 3-Clause.

Технический обзор

Микроядро обрабатывает многозадачность, управление памятью и межпроцессное взаимодействие. Оно также предоставляет потоки, основанные на ядре, и поддерживает симметричную многопроцессорность. В соответствии с типичной архитектурой микроядра, файловые системы, сети, драйверы устройств и графический пользовательский интерфейс изолированы друг от друга и реализованы в виде набора компонентов пользовательского пространства, взаимодействующих посредством шины сообщений. Каждый процесс (называемый задачей) может содержать несколько потоков (с вытесняющей многозадачностью, управляемой ядром), которые, в свою очередь, могут содержать несколько волокон, планируемых кооперативно в пользовательском пространстве. Драйверы устройств и файловых систем, а также другие системные службы, реализованы в виде набора задач пользовательского пространства (серверов), что определяет мультисерверную природу HelenOS. Задачи взаимодействуют посредством HelenOS IPC, ориентированного на установление соединения и асинхронного. Его можно использовать для отправки небольших сообщений фиксированного размера, блоков байтов или для согласования совместного использования памяти. Сообщения могут пересылаться без копирования больших объемов данных или отображения памяти в адресное пространство промежуточных задач.

Разработка

Разработка HelenOS ведётся усилиями сообщества. Сообщество разработчиков состоит из небольшой основной команды, состоящей в основном из сотрудников и бывших и нынешних студентов факультета математики и физики Карлова университета в Праге, а также ряда участников со всего мира. В 2011, 2012 и 2014 годах HelenOS принимала участие в Google Summer of Code в качестве организации-наставника. В 2013 году проект был организацией-наставником в программе ESA Summer of Code in Space 2013. Исходный код HelenOS распространяется под лицензией BSD 3-Clause, в то время как некоторые сторонние компоненты доступны под лицензией GNU General Public License. Обе эти лицензии являются лицензиями на свободное программное обеспечение, что делает HelenOS свободным программным обеспечением.

Поддержка оборудования

HelenOS работает на нескольких различных архитектурах процессоров, включая ARM, x86 64, IA 32, IA 64 (Itanium), MIPS, PowerPC (только 32-битные), SPARC V9 и RISC V. В определенный момент времени различные версии HelenOS работали на реальном оборудовании для каждой из этих архитектур (а не только в эмуляторе). HelenOS поддерживает PATA, SATA, USB-накопители, USB HID, WiFi-адаптер Atheros, несколько сетевых карт Ethernet, звуковые устройства SoundBlaster 16 и Intel HDA, последовательные порты, клавиатуры, мыши и фреймбуферы.

Исследования и академическое использование

HelenOS используется в исследовательских целях в области программных компонентов и верификации в Департаменте распределённых и надёжных систем Карлова университета в Праге. Помимо этого, студенты используют HelenOS как платформу для разработки программных проектов и магистерских диссертаций.