Проект Xen представил Unikraft для выполнения приложений поверх гипервизора.
Разработчики гипервизора Xen анонсировали проект Unikraft, в рамках которого развивается технология, позволяющая запускать отдельные приложения поверх гипервизора. Unikraft представляет инструменты для упрощения сборки самодостаточных unikernel, в которых исходные тексты приложения компилируются в подобие ядра операционной системы, включающей только компоненты, необходимые для запуска определённой программы. Код проекта распространяется под лицензией BSD.
Избавление от лишних звеньев и поставка только действительно необходимых компонентов операционной системы позволяет снизить потребление ресурсов, уменьшить накладные расходы, сократить время запуска и повысить безопасность, приблизив характеристики решений на базе unikernel к контейнерам, но предоставив высокий уровень изоляции. В качестве областей в которых востребован данный подход упоминаются системы на базе микросервисов, встраиваемые устройства, интернет вещей (IoT) и автомобильные информационные системы.
В отличие от уже существующих проектов, таких как MirageOS, MiniPython, ClickOS и HaLVM, Unikraft позиционируется как универсальная модульная система, не привязанная к конкретным языкам программирования и позволяющая достаточно быстро организовать сборку в форме unikernel существующих проектов. В состав Unikraft входит сборочный инструментарий и набор настраиваемых библиотек, выступающих в роли сборочных блоков для построения unikernel на основе имеющейся кодовой базы.
Библиотеки разделены на четыре категории:
Библиотеки поддержки архитектур, включающие элементы для обеспечения работа на различных аппаратных архитектурах (x86_64, ARM32, MIPS);
Библиотеки поддержки платформ, позволяющие адаптировать unikernel для запуска в различных окружениях - поверх обычного оборудования, Xen и KVM или в форме непривилегированного процесса в Linux;
Базовые библиотеки (Core), предоставляют такие возможности, как драйверы для сетевого доступа, файловые системы, механизмы распределения памяти, планировщики задач, сетевой стек, runtime (например, интерпретатор Python), и инструменты профилирования и отладки;
Внешние библиотеки - порты существующих библиотек, адаптированные для работы в Unikraft (libc, openssl и т.п.).
Сборочный инструментарий позволяет скомпилировать приложения с набором заданных библиотек в самодостаточный исполняемый файл, который может работать на выбранной целевой системе без каких-либо прослоек (например, поверх Xen, в виде процесса Linux или вместо ОС на обычном оборудовании). Настройка состава unikernel осуществляется по аналогии с применением kconfig для настройки ядра Linux, а также при помощи набора сборочный файлов (Makefile), через которых можно выбрать и настроить необходимые библиотеки. В простейшем случае достаточно запустить "make menuconfig", выбрать библиотеки и параметры итогового образа, затем сохранить настройки, запустить утилиту make и получить исполняемые образы для всех выбранных платформ.
Проект Xen представил Unikraft для выполнения приложений поверх гипервизора