Munal OS — операционная система, которая нарушает все правила
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Что если собрать ОС, сознательно отказавшись от классических концепций вроде виртуальной памяти, прерываний и даже загрузчика? Именно такую задачу поставил перед собой разработчик Askannz, создавая Munal OS — экспериментальную систему на Rust с неожиданными архитектурными решениями.
Зачем нужна ещё одна ОС?
Munal OS — это не конкурент Linux или Windows, а скорее исследовательский проект. Его цель — проверить, какие компоненты ОС действительно необходимы в современных условиях, а от каких можно отказаться благодаря новым технологиям вроде WebAssembly.
Интересно, что система начиналась как учебный проект по системному программированию, но постепенно превратилась в полноценную ОС с графическим интерфейсом, сетевым стеком и набором приложений.

Ключевые особенности
- Графический интерфейс в HD — система поддерживает мышь, клавиатуру и разрешение до 1080p
- WASM-песочница — все приложения выполняются в изолированных WebAssembly-контейнерах
- Сетевой стек — есть поддержка TCP/IP и даже простой веб-браузер
- Кастомизируемый UI — собственная библиотека виджетов с гибкой системой стилей
- Встроенные приложения — текстовый редактор, терминал Python и другие
Архитектурные решения, которые вас удивят
Munal OS сознательно отказывается от многих традиционных компонентов ОС:
- Нет загрузчика — система компилируется в единый EFI-файл
- Нет виртуальной памяти — используется физическое адресное пространство
- Нет прерываний — всё работает на основе опроса устройств (polling)
- Нет многозадачности — один глобальный цикл событий
Безопасность обеспечивается за счёт WebAssembly — приложения выполняются в песочнице и не имеют прямого доступа к системным ресурсам.

Технические детали
Драйверы
Вместо работы с реальным железом Munal OS использует VirtIO — стандарт виртуальных устройств для QEMU. Реализованы драйверы для:
- Клавиатуры
- Мыши
- Сети
- Графики
Цикл событий
Вся система работает в одном глобальном цикле, который последовательно:
- Опрашивает устройства ввода
- Отрисовывает интерфейс
- Выполняет шаг каждого приложения
- Обновляет экран
Такой подход упрощает отладку, но требует от приложений явного возврата управления.
Приложения
Все программы компилируются в WASM и выполняются через движок wasmi. Система предоставляет API для:
- Работы с вводом
- Сетевых операций
- Вывода графики
Есть частичная поддержка WASI для совместимости с существующими инструментами.

Практическое применение
Хотя Munal OS пока не готова для повседневного использования, она представляет интерес для:
- Исследователей ОС — как пример альтернативного дизайна
- Разработчиков на Rust — для изучения системного программирования
- Энтузиастов WebAssembly — демонстрирует необычное применение технологии
Как попробовать
Для запуска потребуется:
- Установить Rust Nightly
- Добавить целевые платформы:
rustup target add --toolchain nightly-2025-06-01-x86_64-unknown-linux-gnu wasm32-wasip1
rustup component add rust-src --toolchain nightly-2025-06-01-x86_64-unknown-linux-gnu
- Запустить скрипт:
./run.sh
Система работает в QEMU и пока не поддерживает реальное железо.
Munal OS — это смелый эксперимент, который заставляет задуматься: а какие компоненты ОС действительно необходимы сегодня? Проект демонстрирует, что даже без классических механизмов вроде виртуальной памяти можно создать функциональную систему с графическим интерфейсом.
Особенно интересно будет:
- Разработчикам ОС — для вдохновения
- Rust-программистам — как пример сложного проекта
- Всем, кто интересуется нетривиальными архитектурными решениями
Проект активно развивается и открыт для контрибьюторов. Если вы давно хотели попробовать силы в системном программировании — возможно, это ваш шанс!
