- Мир перевернулся. Microsoft выпустила собственный Linux
- Linux от Microsoft
- Что входит в дистрибутив
- Инсталлятор в комплекте
- Безопасная система
- Microsoft рассказала о собственном Linux-дистрибутиве CBL-Mariner
- Компания Microsoft создала дистрибутив Linux
- Microsoft выпустила собственный дистрибутив Linux
- Xakep #289. Взлом в воздухе
Мир перевернулся. Microsoft выпустила собственный Linux
Microsoft выпустила Linux-дистрибутив CBL-Mariner 1.0 собственной разработки. Это его первая стабильная сборка, и она находится в свободном доступе. Microsoft предлагает пользователям собирать на его основе собственные образы, дополняя их различными пакетами, которых сейчас доступно около 3000.
Linux от Microsoft
Корпорация Microsoft выпустила первую стабильную сборку собственного Linux-дистрибутива CBL-Mariner. Его премьера состоялась спустя меньше месяца с момента анонса системы Windows 11.
CBL-Mariner 1.0 (Common Base Linux) представляет собой базовую платформу для развертывания Linux-окружений в различных онлайн-сервисах, включая облачные. Microsoft использует его в нескольких своих проектах, включая облачный сервис Azure – второй в мире по популярности после Amazon Web Services (19-процентная доля у Azure и 32% у AWS, по данным Statista.com за I квартал 2021 г.).
Также CBL-Mariner применяется в составе Linux-подсистемы в Windows (Windows Subsystem for Linux 2.0, WSL2). Как сообщал CNews, он отвечает, в частности, за запуск приложений для Linux с графическим интерфейсом.
Документация и все необходимые файлы для CBL-Mariner 1.0 находятся в свободном доступе. Microsoft разместила их на сервисе GitHub, которым владеет с 2018 г. Проект распространяется под несколькими open source-лицензиями, включая GNU GPL и MIT.
Что входит в дистрибутив
Microsoft не распространяет CBL-Mariner 1.0 как отдельный готовый образ. Пользователю придется самому собрать собственный образ с нужной ему начинкой. Софтверный гигант опубликовал на GitHub подробную инструкцию по такой сборке, но пока только для Ubuntu 18.04.
Сам по себе CBL-Mariner 1.0 – это набор базовых RPM-пакетов, которые будут служить основой для будущего образа. Пользователь может сам выбирать, что войдет в итоговый состав образа, и для этого он может использовать специализированный репозиторий. Его каталог размещен на сайте Microsoft и насчитывает приблизительно 3000 пакетов.
Основной набор пакетов в составе CBL-Mariner 1.0 остается неизменным. Microsoft пошла на это ограничение для упрощения сопровождения и разработки апдейтов.
При сборке пользователь может генерировать как полноценные монолитные системные образы, так и отдельные RPM-пакеты на базе SPEC-файлов и исходных текстов. В связи с этим Microsoft реализовала и два варианта обновления CBL-Mariner 1.0 – апдейт отдельных пакетов или образа в целом.
Управление загрузкой системы и различными сервисами в CBL-Mariner 1.0 осуществляется через системный менеджер systemd. За управление пакетами отвечают пакетные менеджеры RPM и DNF.
Инсталлятор в комплекте
Для упрощения процесса установки CBL-Mariner 1.0 Microsoft добавила в его состав инсталлятор. Обычные пользователи могут использовать его в графическом режиме с отображением интерфейса, продвинутым же может пригодиться текстовый режим.
Инсталлятор может генерировать VHD- и ISO-образы и предоставляет два варианта установки на выбор. Первый – это Core, и при его выборе будут установлены только базовые сервисы и программы. Второй позволяет установить полный набор пакетов – он называется Full.
В дополнение к этому непосредственно в меню инсталлятора можно выбрать раздел накопителя, на который будет установлен дистрибутив.
Здесь же можно заранее создать пользователя и выполнять ряд других базовых настроек.
Безопасная система
Согласно предоставленному Microsoft описанию, при разработке CBL-Mariner 1.0 компания уделяла много внимания вопросам безопасности. Например, в системе есть функции шифрования разделов и фильтрации системных вызовов за счет механизма seccomp, плюс он умеет проверять подлинность пакетов по цифровой подписи.
В CBL-Mariner 1.0 по умолчанию активна защита от переполнения буфера и стека, а области памяти, в которых хранятся части ядра и модулей, доступны исключительно для чтения. Исполнение любого кода в них запрещено.
Также в CBL-Mariner 1.0 есть и ряд опциональных функций безопасности. Например, пользователь может запретить подгрузку модулей ядра после инициализации всей системы.
Microsoft рассказала о собственном Linux-дистрибутиве CBL-Mariner
Инсталлятор 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 с. В процессе задаются стандартные вопросы по указанию типичных параметров, разделов на диске, системной конфигурации и т.д.
Пакетная система 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 перечислены в репозитории.
Компания Microsoft создала дистрибутив Linux
Редмонд рассказал о создании продукта с названием Azure Cloud Switch или ACS. Под непримечательным названием скрывается кроссплатформенная модульная операционная система для дата-центров. Это дистрибутив Linux для использования в свитчах.
Пост на сайте Azure написан языком, не совсем непонятным для обычных людей. Камала Субраманьян, главный архитектор вычислительной сети Azure, пишет, что в Microsoft верят в наличие на рынке большого количества аппаратных платформ сетевых коммутаторов, и что здоровая конкуренция между производителями ведёт к инновациям, увеличению скорости и удешевлению. Видимо, за этим корпоративным даблспиком скрывается предупреждение партнёрам: мы не собираемся с вами воевать.
Microsoft хочет построить программно-конфигурируемую сеть, поскольку адаптировать «зоопарк» оборудования разных производителей с различными операционками сложно. Сложно было и найти подходящее программное обеспечение для создания подобного решения — такое, чтобы оно выполняло поставленные задачи и позволяло выполнять простое сопровождение и доработку.
Операционка ACS использует Switch Abstraction Inteface (SAI), продукт проекта OpenCompute, с помощью API которого можно программировать интегральные схемы специального назначения (ASIC) в сетевых устройствах.
Далее запись подробно рассказывает о функциях нового продукта. Но не объясняется главное: почему в Microsoft пошли по пути создания дистрибутива Linux? Вероятно, сказалась сложность экосистемы сетевых коммутаторов. ACS работает на свитчах четырёх производителей ASIC (Mellanox, Broadcom, Cavium и Barefoot), на шести реализацях SAI (Broadcom, Dell, Mellanox, Cavium, Barefoot и Metaswitch) и на трёх стеках приложений (Microsoft, Dell и Metaswitch). Пост заканчивается словами уверенности в том, что подход по отделению софта приложений свитчей от «железной» составляющей станет трендом в сетевой индустрии.
Созданный дистрибутив Linux будет использоваться только внутри компании, его не будут продавать. Но любопытен сам факт того, что в Microsoft решили не браться за какой-то специальный вариант Windows, а доверить критически важные системы варианту свободной операционной системы. Это уже не первый шаг в отношении открытых операционок от Microsoft пост-балмеровской эпохи Сатья Наделлы. В прошлом году глава компании буквально заявил, что Microsoft любит Linux, и подкрепил сказанное поддержкой CoreOS, операционной системы на базе ядра Linux для создания кластеров.
Microsoft выпустила собственный дистрибутив Linux
Xakep #289. Взлом в воздухе
На этой неделе компания Microsoft выложила на GitHub первую стабильную сборку собственного дистрибутива Linux, CBL-Mariner (Common Base Linux), который был опубликован под опенсорсной лицензией MIT. Это внутренний дистрибутив, разработанный для облачной инфраструктуры, edge-продуктов и сервисов Microsoft.
Описание дистрибутива гласит, что он создавался с целью унификации, как базовая платформа для различных продуктов и сервисов. В частности, в компании CBL-Mariner применяется в работе облачного сервиса Azure.
За разработкой этого дистрибутива стоит так же команда Linux Systems Group, которая создала Windows Subsystem for Linux version 2 и отвечала за интеграцию Linux в Windows.
Впервые о CBL-Mariner заговорили еще осенью прошлого года, а теперь один из инженеров Microsoft и вовсе опубликовал подробное руководство по созданию ISO-образов CBL-Mariner, а компания опубликовала дистрибутив на GitHub, не привлекая к этому событию лишнего внимания. CBL-Mariner 1.0 представляет собой набор базовых RPM-пакетов, которые станут основой будущего образа. В каталоге Microsoft насчитывает более 3000 пакетов.
Иронично, что двадцать лет назад, в 2001 году Стив Баллмер называл Linux «раковой опухолью» (впрочем, спустя много лет он отказался от этих слов), а в наши дни Microsoft является одним из наиболее активных участников опенсорсных проектов в мире и владеет GitHub.