Релиз открытой микроядерной ОС Genode 12.05

Анонсирован релиз открытой микроядерной операционной системы Genode OS Framework 12.05, второй выпуск в рамках плана по превращению Genode в операционную систему общего назначения, которая может быть использована для выполнения повседневных задач. В версии 12.05 реализован новый USB-стек (поддерживает UHCI и EHCI, USB HID и устройства хранения), добавлены средства для проигрывания мультимедиа контента, реализована поддержка динамического изменения конфигурации и параметров системы, расширены средства для использования Linux-драйверов, обеспечена возможность запуска немодифицированных инструментов разработки GNU (GCC, G++, Binutils и GNU Make).

Важной особенностью новой версии является реализация новой инфраструктуры для взаимодействия с файловыми системами, которая отличается от традиционного Unix API более простым набором функций для работы с ФС. Например, в новом интерфейсе нет средств для определения прав доступа на уровне отдельных файлов, вместо этого права доступа целиком задаются для текущей сессии взаимодействия приложения с файловой системой. Также представлена первая реализация ram_fs, файловой системы, хранящей данные в ОЗУ. В runtime-окружение Noux, обеспечивающем виртуализацию на уровне ОС, добавлена поддержка многих сетевых системных вызовов, таких как socket, getsockopt, accept, bind, listen, send, connect и т.п., что позволило обеспечить возможность запуска таких сетевых программ, как wget, lynx, ssh и netcat.

Кроме того, отмечается значительная переработка специфичного для аппаратных платформ кода в L4-микроядре Fiasco.OC. В рамках расширения средств по использованию Genode поверх Linux, во фреймворке расширена поддержка специфичных для Linux механизмов, таких как chroot. В направлении обеспечения полноценной поддержки мультимедиа, проведено улучшение порта libSDL, например, добавлена поддержка таймеров, нитей и функций работы со звуком. В число приложений включен мультимедиа плеер, способный работать напрямую поверх различных микроядер. Плеер написан с использованием пакета libav (форк ffmpeg) и доступен с интерфейсом в форме SDL-приложения avplay и Qt4-фронтэнда qt_avplay.

Genode предоставляет унифицированную инфраструктуру для создания пользовательских приложений, работающих поверх ядра Linux (32 и 64 бит) или микроядер Fiasco.OC, OKL4 (x86 и ARMv4), L4/Fiasco, L4ka::Pistachio, Codezero и NOVA. Входящее в состав паравиртуализированное Linux-ядро L4Linux, работающее поверх микроядра Fiasco.OC, позволяет выполнять в Genode обычные Linux программы. Ядро L4Linux не работает с оборудованием напрямую, а использует сервисы Genode через набор виртуальных драйверов.

В настоящее время в Genode уже осуществлено портирование различных Linux и BSD компонентов, обеспечена поддержка Gallium3D, осуществлена интеграция Qt4 и WebKit, реализована возможность организации гибридных Linux/Genode программных окружений. Всё больше приложений адаптируются для запуска напрямую поверх микроядра и окружения Noux. Для запуска непортированных программ предусмотрена возможность задействования механизма создания виртуальных окружений уровня отдельных приложений, позволяющих запускать программы в виртуальном окружении с Linux с использованием паравиртуализации.

Несмотря на то, что изначально проект был подконтролен только компании Genode Labs и разрабатывался с привлечением закрытого репозитория, несколько месяцев назад Genode был переведён на полностью открытую модель разработки, подразумевающую открытость принятия решений и вовлечение в разработку заинтересованных сторонних лиц. Все изменения теперь сразу отражаются в публичном Git-репозитории. В качестве основной платформы для ведения разработки, управления кодом и взаимодействия разработчиков используется GitHub.

© OpenNet