Microsoft опубликовал первый стабильный выпуск Linux-дистрибутива CBL-Mariner
12 июля 2021 года
Компания Microsoft опубликовала выпуск дистрибутива CBL-Mariner 1.0 (Common Base Linux Mariner), который помечен как первый стабильный релиз проекта. Дистрибутив CBL-Mariner развивается в качестве универсальной базовой платформы для Linux-окружений, используемых в облачной инфраструктуре, edge-системах и различных сервисах Microsoft. Проект нацелен на унификацию применяемых Linux-решений и упрощение поддержания Linux-систем различного назначения в актуальном состоянии. Наработки проекта распространяются под лицензией MIT.
Дистрибутив предоставляет небольшой типовой набор основных пакетов, которые преподносятся как универсальная основа для создания начинки контейнеров, хост-окружений и сервисов, запускаемых в облачных инфраструктурах и на edge-устройствах. Более сложные и специализированные решения могут создаются путём добавления дополнительных пакетов поверх CBL-Mariner, но основа для всех подобных систем остаётся неизменной, что упрощает сопровождение и подготовку обновлений.
Например, CBL-Mariner применяется в качестве основы мини-дистрибутива WSLGd, в котором предоставляются компоненты графического стека для организации запуска GUI-приложений Linux в окружениях на базе подсистемы WSL2 (Windows Subsystem for Linux). Основа данного дистрибутива неизменна, а расширенная функциональность реализуется через включение дополнительных пакетов с композитным сервером Weston, XWayland, PulseAudio и FreeRDP.
Система сборки CBL-Mariner позволяет генерировать как отдельные RPM-пакеты на основе SPEC-файлов и исходных текстов, так и монолитные системные образы, формируемые при помощи инструментария rpm-ostree и обновляемые атомарно без разбивки на отдельные пакеты. Соответственно, поддерживается две модели доставки обновлений: через обновление отдельных пакетов и через перестроение и обновление всего системного образа. Дистрибутив включает только самые необходимые компоненты и оптимизирован для минимального потребления памяти и дискового пространства, а также для высокой скорости загрузки. Дистрибутив также примечателен включением различных дополнительных механизмов для повышения защиты.
В проекте применяется подход "максимальная безопасность по умолчанию". Предоставляется возможность фильтрации системных вызовов при помощи механизма seccomp, шифрования дисковых разделов, верификации пакетов по цифровой подписи. На этапе сборки по умолчанию включены режимы защиты от переполнения стека, переполнений буфера и проблем с форматированием строк (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro). Активированы поддерживаемые в ядре Linux режимы рандомизации адресного пространства, а также механизмы защиты от атак, связанных с символическими ссылками, mmap, /dev/mem, /dev/kmem. Области памяти, в которых размещаются сегменты с данными ядра и модулей, переведены в режимы только для чтения и запрета исполнения. Опционально доступна возможность запрета загрузки модулей ядра после инициализации системы. Для фильтрации сетевых пакетов задействован инструментарий iptables.
Готовые ISO-обозы не предоставляются. Подразумевается, что пользователь может сам создать образ с необходимой начинкой. Сборочные инструкции предоставлены для Ubuntu 18.04. Доступен репозиторий с уже собранными RPM-пакетами, который можно использовать для компоновки собственных образов на основе файла конфигурации. В репозитории предложено около 3300 пакетов. Например, для сборки полного iso-образа достаточно выполнить:
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
Для управления сервисами и загрузкой применяется системный менеджер systemd. Для управления пакетами поставляются RPM и DNF (вариант tdnf от vmWare). SSH-сервер по молчанию не устанавливается. Для установки дистрибутива предоставляется инсталлятор, который может работать как в текстовом, так и в графическом режимах. Предоставляется возможность установки с полным или базовым набором пакетов, предлагается интерфейс для выбора дискового раздела, выбора имени хоста и создания пользователей.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.