La société Microsoft a publié la version de la distribution CBL-Mariner 1.0 (Common Base Linux Mariner), qui est marquée comme la première version stable du projet. La distribution CBL-Mariner est développée en tant que plateforme de base universelle pour les environnements Linux utilisés dans l'infrastructure cloud, les systèmes edge et divers services Microsoft. Le projet vise à unifier les solutions Linux utilisées par Microsoft et à faciliter le maintien à jour des systèmes Linux de différents types. Les travaux du projet sont distribués sous licence MIT.
La distribution fournit un petit ensemble type de paquets essentiels, servant de base universelle pour créer des contenus de conteneurs, des environnements hôtes et des services exécutés dans des infrastructures cloud et sur des dispositifs edge. Des solutions plus complexes et spécialisées peuvent être créées en ajoutant des paquets supplémentaires au-dessus de CBL-Mariner, mais la base pour tous ces systèmes reste inchangée, ce qui facilite la maintenance et la préparation des mises à jour.
Par exemple, CBL-Mariner est utilisé comme base pour la mini-distribution WSLg, qui fournit des composants de la pile graphique pour exécuter des applications GUI Linux dans des environnements basés sur le sous-système WSL2 (Windows Subsystem for Linux). La base de cette distribution reste inchangée, et la fonctionnalité étendue est réalisée en incluant des paquets supplémentaires avec composite. serveur Weston, XWayland, PulseAudio et FreeRDP.
Le système de construction CBL-Mariner permet de générer à la fois des paquets RPM individuels à partir de fichiers SPEC et de textes sources, ainsi que des images système monolithiques, formées à l'aide de l'outil rpm-ostree et mises à jour de manière atomique sans séparation en paquets individuels. En conséquence, deux modèles de livraison des mises à jour sont pris en charge : par la mise à jour de paquets individuels et par la reconstruction et la mise à jour de l'ensemble de l'image système. La distribution inclut uniquement les composants les plus nécessaires et est optimisée pour une consommation minimale de mémoire et d'espace disque, ainsi que pour une vitesse de démarrage élevée. La distribution se distingue également par l'inclusion de divers mécanismes supplémentaires pour accroître la sécurité.
Le projet utilise une approche de « sécurité maximale par défaut ». Il est possible de filtrer les appels système à l'aide du mécanisme seccomp, de chiffrer les partitions de disque et de vérifier les paquets par signature numérique. Par défaut, lors de la compilation, les modes de protection contre les débordements de pile, les débordements de tampon et les problèmes de formatage de chaîne (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro) sont activés. Les modes de randomisation de l'espace d'adressage pris en charge par le noyau Linux sont également activés, ainsi que des mécanismes de protection contre les attaques liées aux liens symboliques, mmap, /dev/mem et /dev/kmem. Pour les espaces mémoire où sont placés les segments de données du noyau et des modules, un mode en lecture seule est établi et l'exécution de code est interdite. Il est également possible d'interdire le chargement de modules du noyau après l'initialisation du système. Pour le filtrage des paquets réseau, l'outil iptables est utilisé.
Готовые ISO-образы не предоставляются. Подразумевается, что пользователь может сам создать образ с необходимой начинкой (cборочные инструкции предоставлены для 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
Un gestionnaire système systemd est utilisé pour gérer les services et le démarrage. Pour la gestion des paquets, les gestionnaires de paquets RPM et DNF (version tdnf de vmWare) sont fournis. Le serveur SSH n'est pas activé par défaut. Un installateur est proposé pour installer la distribution, qui peut fonctionner à la fois en mode texte et graphique. L'installateur offre la possibilité d'installer un ensemble complet ou de base de paquets, un interface pour choisir la partition de disque, choisir le nom d'hôte et créer des utilisateurs.

Source : opennet.ru
