Некоторое время назад мы писали про то, что проект Xen был передан в Linux Foundation. А на днях сообществом Xen Project была анонсирована первая релизная версия операционной системы Mirage OS 1.0. Этот открытый проект был начат еще в 2009 году при совместном сотрудничестве студентов Кембриджского университета и специалистов компании Citrix.
Что представляет собой Mirage Operating System? Большая часть виртуальных машин сегодня выполняет одну задачу, но при этом это приложение запущено поверх операционной системы, которая имеет множество различных служб и утилит, которые не используются, но создают большую площадь атаки. Основная идея проекта Mirage OS заключается в том, чтобы создать "виртуальную машину одного приложения", которая сможет исполняться на гипервизоре Xen, который работает в большинстве публичных облаков крупнейших сервис-провайдеров. Кроме этого, предполагается, что специализированные модули Mirage можно будет использовать на планшетах и смартфонах.
Mirage OS имеет собственное микроядро (unikernel), к которому с помощью любой десктопной ОС Linux или Mac OS можно на высокоуровневом языке OCaml прикрутить необходимое приложение (например, DNS-сервер на 200 Кб), после чего это все уже компилируется в специализированную виртуальную машину, выполняющую определенную функцию и не имеющую в своем составе ничего лишнего, не относящегося к ее задаче.
На данный момент для языка OCaml в Mirage OS существует более 50 библиотек с различными расширениями. Кроме того в ОС полноценно реализованы протоколы TCP/IP, DNS, SSH, Openflow (switch/controller), HTTP, XMPP и внутренний транспорт межмашинной коммуникации Xen.
В Mirage OS используется следующая последовательность получения готового виртуального модуля:
Сначала с помощью открытого менеджера пакетов OPAM добавляются необходимые модули. Он поддерживает одновременную установку нескольких окружений, гибкую работу с пакетами и рабочий процесс с репозиториями Git.
Далее происходит сборка окружения с помощью одной утилиты CLI, которая позволяет сбилдить Xen unikernel так же просто, как и бинарники Unix.
Затем Mirage OS сама создаст набор сигнатур модулей и запишет конфигурацию в единый файл.
Release notes для Mirage OS можно посмотреть здесь, а скачать исходники можно по этой ссылке. Более подробно о проекте можно почитать тут и тут.