Microsoft рассказала о собственном Linux-дистрибутиве CBL-Mariner

acb64aba7cdea998d32207c0e1d87051.png
Инсталлятор CBL-Mariner на макбуке

Юниксоиды из Microsoft поделились информацией о дистрибутиве CBL-Mariner, который разработан внутри компании и используется для внутренних нужд, а именно в облачной инфраструктуре Azure.

CBL-Mariner — дистрибутив специального назначения, созданный силами подразделения Linux System Group. Оно же разработало ядро Linux для подсистемы WSL2 (Windows Subsystem for Linux version 2). WSL2 — продвинутый слой совместимости для запуска Linux-приложений.
С точки зрения Microsoft не имеет особого смысла брать ядро Linux у третьих лиц. Собственное подразделение может оперативно вносить изменения в код и гарантировать оптимальную поддержку конкретного железа. И над своим ядром компания сохраняет определённый контроль.

Аббревиатура CBL в названии означает Common Base Linux.

Исходный код проекта опубликован в репозитории на GitHub под лицензией MIT.

Хотя этот дистрибутив создан для разработчиков внутри Microsoft и публикация образа ISO не предусмотрена, однако в репозитории есть инструкции по сборке образов под Ubuntu 18.04. Требуется предварительно установить Docker, последнюю версию Go, инструменты RPM и другие зависимости.

Сборка выполняется из предварительно скомпилированных пакетов RPM в отдельном репозитории.

git clone https://github.com/microsoft/CBL-Mariner.git
cd CBL-Mariner/toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json

Инсталлятор предлагает два варианта установки: только ядро (Core) или полная система (Full). В обоих случаях установка занимает немного времени: у автора на слабенькой виртуальной машине 1 vCPU, 2GB RAM с диском 16GB минимальная установка завершается за 29 секунд, а полная — за 76 с. В процессе задаются стандартные вопросы по указанию типичных параметров, разделов на диске, системной конфигурации и т.д.

a500188f3ea556a6c89a296731f918ad.png

ba38793215e792433741c27d437eb0f2.png

Пакетная система CBL-Mariner основана на RPM, используются пакетные менеджеры dnf и Tiny DNF из Photon OS (система Photon OS — контейнеры от VMware для облачных приложений).

CBL-Mariner также поддерживает обновление через образы для атомарного обслуживания и отката с помощью RPM-OSTree, варианта OSTree для управления загружаемыми, неизменяемыми, версионными деревьями файловой системы. Идея rpm-ostree — в использовании клиент-серверной архитектуры для надёжного обновления и синхронизации Linux-хостов с последними пакетами.

После установки доступно два пакетных репозитория с примерно 3300 пакетами.

CBL-Mariner следует принципу «безопасность по умолчанию» (secure-by-default), идёт с усиленным ядром, подписанными обновлениями, защитой ASLR, усилением компилятора (compiler-based hardening), защищёнными логами и др.

Все функции безопасности Mariner перечислены в репозитории.

© Habrahabr.ru