Выпуск MirageOS 3.6, платформы для запуска приложений поверх гипервизора

Состоялся релиз проекта MirageOS 3.6, позволяющего формировать операционные системы одного приложения, в которых приложение поставляется как самодостаточный «unikernel», способный выполняться без применения операционных систем, отдельного ядра ОС и каких-либо прослоек. Для разработки приложений применяется язык OCaml. Код проекта распространяется под свободной лицензией ISC.

Вся низкоуровневая функциональность, свойственная операционной системе, реализована в форме библиотеки, прикрепляемой к приложению. Приложение может быть разработано в любой ОС, после чего компилируется в специализированное ядро (концепция unikernel), которое может запускаться напрямую поверх гипервизоров Xen, KVM, BHyve и VMM (OpenBSD), поверх мобильных платформ, в форме процесса в POSIX-совместимом окружении или в облачных окружениях Amazon Elastic Compute Cloud и Google Compute Engine.

Сгенерированное окружение не содержит ничего лишнего и взаимодействует непосредственно с гипервизором без драйверов и системных прослоек, что позволяет добиться существенного снижения накладных расходов и повышения безопасности. Работа с MirageOS сводится к трём стадиям: подготовка конфигурации с определением используемых в окружении OPAM-пакетов, сборка окружения и запуск окружения. Runtime для обеспечения работы поверх Xen основан на урезанном ядре Mini-OS, а для других гипервизоров и систем на базе ядра Solo5.

Несмотря на то, что приложения и библиотеки формируются на высокоуровневом языке OCaml, итоговые окружения демонстрируют достаточно неплохую производительность и минимальный размер (например, DNS-сервер занимает всего 200 Кб). Упрощается и сопровождение окружений, так как при необходимости обновления программы или изменения конфигурации, достаточно создать и запустить новое окружение. Поддерживается несколько десятков библиотек на языке OCaml для выполнения сетевых операций (DNS, SSH, OpenFlow, HTTP, XMPP и т.п.), работы с хранилищами и обеспечения параллельной обработки данных.

Основные изменения в новом выпуске связаны с обеспечением поддержки новых возможностей, предложенных в инструментарии Solo5 0.6.0 (sandbox-окружение для выполения unikernel):

  • Добавлена возможность запуска unikernel MirageOS в изолированном окружении spt («sandboxed process tender»), предоставляемом инструментарием Solo5. При использовании бэкенда spt ядра MirageOS запускаются в пользовательских процессах Linux, к которым применяется минимальная изоляция на основе seccomp-BPF;
  • Реализована поддержка манифеста приложений от проекта Solo5, позволяющего определить несколько прикрепляемых к unikernel сетевых адаптера и устройств хранения при изоляции на базе бэкендов hvt, spt и muen (использование для бэкендов genode и virtio пока ограничено одним устройством);
  • Усилена защита бэкендов на базе Solo5 (hvt, spt), например, обеспечена сборка в режиме SSP (Stack Smashing Protection).

Источник: opennet.ru

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