Выпуск Minoca 0.4, операционной системы для потребительских интернет-устройств

Состоялся релиз операционной системы Minoca 0.4, ориентированной на потребительские интернет-устройства и встраиваемую технику. Код распространяется под лицензией GPLv3. Сборки подготовлены для архитектур x86, ARMv6 и ARMv7, в том числе сформированы загрузочные образы для плат Raspberry Pi ½/3, BeagleBone Black, Asus C201, PandaBoard и Galileo, а также эмулятор на основе QEMU. 0_1498809266.png

Операционная система примечательна низким потреблением ресурсов и способна работать на оборудовании с 5 Мб ОЗУ. Система также изначально нацелена на обеспечение минимального энергопотребления и использует встроенные средства для переключения режимов процессоров, влияющих на потребление энергии, а также может минимизировать число пробуждений фоновых процессов в условиях простоя, что позволяет дольше находиться в глубоких режимах экономии энергопотребления.

Minoca имеет событийно-ориентированную архитектуру, поддерживает многопроцессорные конфигурации, вытесняющую многозадачность, сетевой, беспроводной и USB стеки, файловую систему FAT, ACPI, AHCI, ATA, SD/MMC. Пользователям предоставлен набор драйверов для различных контроллеров, сетевых адаптеров и компонентов аппаратных платформ.

Система модульная — подсистемы ядра отделены друг от друга, а взаимодействие с оборудованием абстрагировано, что позволяет поставлять для разных архитектур единое унифицированное ядро, расширяемое через систему надстроек. Драйверы устройств не привязаны к ядру и оформляются в виде универсальных исполняемых файлов, не зависящих от версии ядра (обновление ядра не требует обновления драйверов) и загружаемых по необходимости.

Для разработки приложений предлагается POSIX-подобный интерфейс, благодаря которому в Minoca уже удалось собрать множество существующих популярных пакетов. В настоящее время для установки из специального репозитория доступно более 260 приложений, среди которых GCC, Python 2.7/3.5, Perl, PHP, Ruby, Lua, zsh, bash, binutils, boost, cmake, vim, emacs, git, apache httpd, nginx, MySQL, PostgreSQL, Node.js, OpenLDAP, OpenSSH, unbound, X.Org, GTK+, miniDLNA, Mesa, SDL. Для установки и обновления программ задействован пакетный менеджер opkg, также применяемый в OpenEmbedded и OpenWrt. В качестве командной оболочки и для выполнения shell-скриптов проектом развивается интерактивный интерпретатор Chalk.

Ключевые новшества Minoca 0.4:

  • Реализация графического режима и простого пользовательского окружения на базе X.Org, Mesa3D, GTK+, SDL и оконного менеджера twm. Рассматривались варианты создания графического стека на базе DirectFB и Wayland, но DirectFB был отклонён из-за ограниченного числа приложений, а Wayland/Weston из-за излишних привязок к Linux. 0_1498808764.png
  • В состав включён fceux, эмулятор приставок Nintendo Entertainment System (NES), Famicom и Dendy, который используется для тестирования графической и звуковой подсистем, и оценки производительности; 0_1498808246.png
  • Реализованы драйверы для контроллеров AHCI (SATA), сетевых карт e1000 (Intel Gigabit Ethernet), USB HID, мышей с интерфейсами USB и PS/2, звуковых карт на базе Intel HD Audio и Raspberry Pi PWM Audio;

© OpenNet