Microsoft hat das erste stabile Update des neuen Branches der Distribution CBL-Mariner 2.0 (Common Base Linux Mariner) veröffentlicht, das als universelle Basisplattform für Linux-Umgebungen in Cloud-Infrastrukturen, Edge-Systemen und verschiedenen Microsoft-Diensten entwickelt wird. Das Projekt zielt darauf ab, die in Microsoft eingesetzten Linux-Lösungen zu vereinheitlichen und die Wartung von Linux-Systemen verschiedener Zwecke auf dem neuesten Stand zu halten. Die Projektergebnisse werden unter der MIT-Lizenz veröffentlicht. Die Paketversionen werden für die Architekturen aarch64 und x86_64 bereitgestellt.
Die neue Version zeichnet sich durch erhebliche Aktualisierungen der Softwareversionen aus. Unter anderem wurden die Versionen des Linux-Kernels auf 5.15 aktualisiert (in der Version 1.0 wurde der Kernel 5.4 verwendet), 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 und ostree 2022.1. Das Basis-Repository enthält Komponenten zur Erstellung von grafischen Oberflächen, wie Wayland 1.20, Mesa 21.0, GTK 3.24 und X.Org Server 1.20.10, die zuvor in einem separaten Repository coreui bereitgestellt wurden. Es wurden Kernel-Builds mit PATCHES PREEMPT_RT hinzugefügt, die in Echtzeitsystemen angewendet werden können.
Der CBL-Mariner-Distributions bietet ein kompaktes Set an Standardpaketen, die als universelle Grundlage für die Erstellung von Containeranwendungen, Hosting-Umgebungen und Diensten in Cloud-Infrastrukturen sowie auf Edge-Geräten dienen. Komplexere und spezialisierte Lösungen können durch das Hinzufügen zusätzlicher Pakete über CBL-Mariner erstellt werden, jedoch bleibt die Basis für all diese Systeme unverändert, wodurch Wartung und Aktualisierung vereinfacht werden. Zum Beispiel wird CBL-Mariner als Grundlage für die Mini-Distribution WSLg verwendet, die die Komponenten des grafischen Stacks für die Ausführung von GUI-Anwendungen unter Linux in Umgebungen der WSL2 (Windows Subsystem for Linux) bereitstellt. Die erweiterten Funktionen in WSLg werden durch die Integration zusätzlicher Pakete mit kompositiven dem Server durch Weston, XWayland, PulseAudio und FreeRDP.
Das CBL-Mariner-Bausystem ermöglicht die Erstellung sowohl einzelner RPM-Pakete auf Basis von SPEC-Dateien und Quelltexten als auch monolithischer Systemabbilder, die mithilfe des rpm-ostree-Werkzeugs erstellt und atomar aktualisiert werden, ohne in separate Pakete zerlegt zu werden. Folglich werden zwei Update-Modelle unterstützt: über die Aktualisierung einzelner Pakete und über den Neuaufbau und die Aktualisierung des gesamten Systemabbilds. Ein Repository ist verfügbar, das rund 3000 bereits erstellte RPM-Pakete umfasst und zur Erstellung eigener Abbilder basierend auf der Konfigurationsdatei verwendet werden kann.
Die Distribution umfasst nur die notwendigsten Komponenten und ist für einen minimalen Speicher- und Festplattenspeicherverbrauch sowie eine hohe Bootgeschwindigkeit optimiert. Außerdem zeichnet sich die Distribution durch verschiedene zusätzliche Mechanismen zur Verbesserung der Sicherheit aus. Im Projekt wird der Ansatz „maximale Sicherheit als Standard“ verfolgt. Es besteht die Möglichkeit, Systemaufrufe durch den seccomp-Mechanismus zu filtern, Festplattenteile zu verschlüsseln und Pakete durch digitale Signaturen zu überprüfen.
Die unterstützten Kernel-Modi zur Adressraum-Randomisierung sowie Schutzmechanismen gegen Angriffe, die mit symbolischen Links, mmap, /dev/mem und /dev/kmem verbunden sind, wurden aktiviert. Für die Speicherbereiche, in denen Segmente mit Kernel- und Moduldaten platziert werden, ist der Modus auf "nur lesen" gesetzt und die Ausführung von Code ist untersagt. Optional besteht die Möglichkeit, das Laden von Kernelmodulen nach der Systeminitialisierung zu verbieten. Zur Filterung von Netzwerkpaketen wird das Werkzeug iptables verwendet. In der Standardkonfiguration sind Schutzmodi gegen Stacküberläufe, Pufferüberläufe und Formatierungsprobleme aktiviert (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Für die Verwaltung von Diensten und Systemlast kommt der Systemmanager systemd zum Einsatz. Die Paketverwaltung erfolgt über die Paketmanager RPM und DNF. Der SSH-Server ist standardmäßig nicht aktiviert. Für die Installation der Distribution steht ein Installer zur Verfügung, der sowohl im Text- als auch im grafischen Modus arbeiten kann. Der Installer bietet die Möglichkeit, ein vollständiges oder grundlegendes Paketset zu installieren, sowie eine Benutzeroberfläche zur Auswahl der Festplattenpartition, der Hostnamen und zur Erstellung von Benutzern.
Quelle: opennet.ru
