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

27 октября 2020 года

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

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

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

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

Ключевые улучшения:

  • Бэкенд для гипервизора Xen переписан с нуля и теперь основан на инструментарии Solo5 (sandbox-окружение для выполения unikernel). Переработка позволила обеспечить работу MirageOS unikernel в режиме PVHv2, который комбинирует элементы режимов паравиртуализации (PV) для ввода/вывода, обработки прерываний, организации загрузки и взаимодействия с оборудованием, с применением полной виртуализации (HVM) для ограничения привилегированных инструкций, изоляции системных вызовов и виртуализации таблиц страниц памяти. Также обеспечена совместимость с QubesOS 4.0.
  • Прекращена поддержка старого runtime для работы поверх Xen, основанного на урезанном ядре Mini-OS. Все не-UNIX бэкенды теперь используют унифицированный OCaml runtime на основе ocaml-freestanding.
  • Настройки OCaml runtime, задаваемые через переменную окружения OCAMLRUNPARAM, теперь доступны в форме загрузочных параметров unikernel.
  • В MirageOS unikernel для Xen включены современные механизмы защиты, такие как защита стека SSP для кода на языке Си, W^X (Write XOR Execute) и применение канареечных меток в куче malloc.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск MirageOS 3.9, платформы для запуска приложений поверх гипервизора», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.