La société Microsoft a publié la première mise à jour stable de la nouvelle branche de la distribution CBL-Mariner 2.0 (Common Base Linux Mariner), qui se développe comme une 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 chez Microsoft et à simplifier le maintien à jour des systèmes Linux destinés à différents usages. Les travaux du projet sont diffusés sous la licence MIT. Les packages sont constitués pour les architectures aarch64 et x86_64.
Cette nouvelle version est marquée par une mise à jour significative des versions des logiciels. Parmi les mises à jour, il y a les noyaux Linux 5.15 (la branche 1.0 utilisait le noyau 5.4), systemd 250, glibc 2.35, GCC 11.2, clang 12, Python 3.9, ruby 3.1.2, rpm 4.17, qemu 6.1, perl 5.34, ostree 2022.1. Le dépôt de base inclut des composants pour construire une interface graphique, tels que Wayland 1.20, Mesa 21.0, GTK 3.24 et X.Org Server 1.20.10, qui étaient auparavant fournis dans un dépôt séparé coreui. Des constructions du noyau avec des patchs PREEMPT_RT ont été ajoutées pour les systèmes fonctionnant en temps réel.
La distribution CBL-Mariner fournit un ensemble de packages de base qui constitue une 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 appareils edge. Des solutions plus complexes et spécialisées peuvent être créées en ajoutant des packages supplémentaires sur CBL-Mariner, mais la base de tous ces systèmes reste constante, ce qui simplifie la maintenance et la préparation des mises à jour. Par exemple, CBL-Mariner est utilisé comme base d'une mini-distribution WSLg, qui fournit des composants de la pile graphique pour permettre l'exécution d'applications GUI Linux dans des environnements basés sur le sous-système WSL2 (Windows Subsystem for Linux). Des fonctionnalités avancées dans WSLg sont réalisées par l'inclusion de packages supplémentaires avec un compositeur. 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, créées à l'aide de l'outil rpm-ostree et mises à jour de manière atomique sans décomposition en paquets individuels. Par conséquent, deux modèles de livraison des mises à jour sont pris en charge : via la mise à jour de paquets individuels et via la reconstruction et la mise à jour de l'ensemble de l'image système. Un dépôt contenant environ 3000 paquets RPM déjà construits est disponible pour composer vos propres images à partir d'un fichier de configuration.
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 grande vitesse de démarrage. La distribution se distingue également par l'inclusion de divers mécanismes supplémentaires pour améliorer la sécurité. Le projet applique une approche de « sécurité maximale par défaut ». Il offre la possibilité 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.
Les modes de randomisation de l'espace d'adressage pris en charge par le noyau Linux sont 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 zones mémoire où sont placés les segments de données du noyau et des modules, un mode lecture seule est établi et l'exécution de code est interdite. Il est également possible d'interdire le chargement des modules du noyau après l'initialisation du système. L'outil iptables est utilisé pour le filtrage des paquets réseau. Par défaut, les modes de protection contre le débordement de pile, les débordements de tampon et les problèmes de formatage de chaînes sont activés lors de la compilation (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Pour la gestion des services et du chargement, le gestionnaire de système systemd est utilisé. Les gestionnaires de paquets RPM et DNF sont fournis pour la gestion des paquets. Le serveur SSH n'est pas activé par défaut. Un installateur est disponible pour installer la distribution, et peut fonctionner en modes texte ou graphique. L'installateur offre la possibilité d'une installation avec un ensemble complet ou de base de paquets, et propose une interface pour choisir la partition disque, le nom d'hôte et créer des utilisateurs.
Source : opennet.ru
