Проект 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 и получить исполняемые образы для всех выбранных платформ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.