Через полтора года разработки запуск новая версия проекта «Мираж ОС 4.0» что позволяет создавать операционные системы для одного приложения, в котором приложение поставляется как автономное «unikernel», которое может работать без использования операционных систем, отдельного ядра ОС и каких-либо слоев.
Вся низкоуровневая функциональность, встроенная в операционную систему, реализована в виде библиотеки, прикрепленной к приложению.
О MirageOS
приложение может быть разработан на любой операционной системе, а затем скомпилирован в специализированное ядро (концепция unikernel), который может работать непосредственно поверх гипервизоров Xen, KVM, BHyve и VMM (OpenBSD) на мобильных платформах как процесс POSIX. совместимые или в облачных средах Amazon Elastic Compute Cloud и Google Compute Engine.
Сгенерированная среда не содержит ничего лишнего и напрямую взаимодействует с гипервизором без драйверов или системных уровней, что приводит к значительному сокращению накладных расходов и повышению безопасности.
Работа с ОС Мираж Он сводится к трем этапам: подготовьте конфигурацию с определением пакетов OPAM, используемых в среде, соберите среду и запустите среду. Среда выполнения для работы поверх гипервизоров основана на ядре Solo5.
Хотя приложения и библиотеки построены на языке высокого уровня OCaml, полученные среды показывают достаточно хорошую производительность и минимальный размер (например, DNS-сервер занимает всего 200 КБ).
Обслуживание окружающей среды также упрощается, так как если вам нужно обновить программу или изменить конфигурацию, то достаточно создать и запустить новую среду. Поддерживается несколько сотен библиотек на языке OCaml для выполнения сетевых операций (DNS, SSH, OpenFlow, HTTP, XMPP, Matrix, OpenVPN и др.), работы с хранилищами и обеспечения параллельной обработки данных.
Основные новости MirageOS 4.0
В этой новой версии MirageOS, которая представлена изменен процесс сборки проекта и уникернел. Вместо системы сборки окамлбилд бывшего употребления, используются дюна и местные репозитории (монорепост).
Для создания таких репозиториев добавлена новая утилита opam-monorepo, что позволило нам отделить управление пакетами от сборки из исходного кода. Утилита opam-monorepo выполняет работу по созданию файлов блокировки для зависимостей, связанных с проектом, загрузки и извлечения кода зависимостей и настройки среды для использования системы сборки dune, также стоит упомянуть, что фактическая сборка выполняется дюной.
Еще одно важное изменение: обеспечивается повторяемый процесс сборки. Использование файлов блокировки предоставляет ссылку на версии зависимостей и позволяет полностью повторить процесс сборки в любое время с тем же кодом.
Также подчеркивается, что реализован новый процесс кросс-компиляции и возможность кросс-компиляции предоставляется для всех поддерживаемых целевых платформ из общей среды сборки, в которой, среди прочего, кросс-компилируются C-связанные библиотеки и зависимости, без необходимости добавления этих ссылок в основной пакет.
С другой стороны, упоминается, что утилита opam-monorepo доступна для установки с менеджером пакетов opam и может использоваться в проектах, использующих систему сборки dune. Для поддержки исправлений, решающих проблемы с созданием зависимостей в dune, было создано два репозитория dune-universe/opam-overlays и dune-universe/mirage-opam-overlays, которые включены по умолчанию при использовании утилиты Mirage CLI.
Из другие изменения которые выделяются:
- Кросс-компиляция организована с использованием рабочих пространств, предоставляемых системой сборки dune.
- Добавлена поддержка новых целевых платформ, например, экспериментально предусмотрена возможность создания автономных приложений для работы на платах Raspberry Pi 4.
- Проделана работа по интеграции частей MirageOS в экосистемы, связанные с разработкой OCaml, для упрощения сборки приложений в виде unikernel.
- Многие пакеты MirageOS были перенесены в систему сборки dune.
- Упрощенная интеграция MirageOS с библиотеками C и Rust.
- В новой среде выполнения OCaml предлагается избегать libc (libc free).
- Предусмотрена возможность использования сервиса Merlin для интеграции со стандартными интегрированными средами разработки.
Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.