Die Microsoft Corporation hat das erste stabile Update des neuen CBL-Mariner 2.0 (Common Base Linux Mariner) Distributionszweigs veröffentlicht, der als universelle Basisplattform fĂŒr Linux-Umgebungen dient, die in Cloud-Infrastrukturen, Edge-Systemen und verschiedenen Microsoft-Diensten verwendet werden. Das Projekt zielt darauf ab, die in Microsoft verwendeten Linux-Lösungen zu vereinheitlichen und die Wartung von Linux-Systemen verschiedener Art auf dem neuesten Stand zu halten. Die Ergebnisse des Projekts werden unter der MIT-Lizenz veröffentlicht. Die Paketbuilds werden fĂŒr die Architekturen aarch64 und x86_64 erstellt.
Die neue Version ist bemerkenswert fĂŒr das bedeutende Update von Softwareversionen. Darunter wurden die Versionen des Linux-Kernels 5.15 aktualisiert (im Branch 1.0 wurde 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, ostree 2022.1. Das Basispaket-Repository umfasst Komponenten zum Erstellen von grafischen Schnittstellen, wie Wayland 1.20, Mesa 21.0, GTK 3.24 und X.Org Server 1.20.10, die zuvor in einem separaten coreui-Repository bereitgestellt wurden. Kernel-Builds mit PREEMPT_RT-Patches wurden hinzugefĂŒgt, um in Echtzeitsystemen eingesetzt werden zu können.
Die CBL-Mariner-Distribution bietet eine kleine standardisierte Sammlung grundlegender Pakete, die als universelle Grundlage fĂŒr die Erstellung von Container-FĂŒllungen, Host-Umgebungen und Diensten dienen, die in Cloud-Infrastrukturen und auf Edge-GerĂ€ten betrieben werden. Komplexere und spezialisierte Lösungen können durch das HinzufĂŒgen zusĂ€tzlicher Pakete ĂŒber CBL-Mariner erstellt werden, aber die Basis fĂŒr all diese Systeme bleibt unverĂ€ndert, was die Wartung und die Vorbereitung von Updates erleichtert. Zum Beispiel wird CBL-Mariner als Grundlage fĂŒr die Mini-Distribution WSLg verwendet, die Komponenten des grafischen Stacks bereitstellt, um die AusfĂŒhrung von GUI-Anwendungen unter Linux in Umgebungen, die auf dem WSL2 (Windows Subsystem for Linux) basieren, zu ermöglichen. Erweiterte Funktionen in WSLg werden durch das HinzufĂŒgen zusĂ€tzlicher Pakete mit Kompositen realisiert. Server Weston, XWayland, PulseAudio und FreeRDP.
Das CBL-Mariner-Bausystem ermöglicht die Generierung sowohl einzelner RPM-Pakete auf Basis von SPEC-Dateien und Quelltexten als auch monolithischer Systemabbilder, die mit den Werkzeugen rpm-ostree erstellt und atomar aktualisiert werden, ohne sie in einzelne Pakete aufzuteilen. Entsprechend werden zwei Modelle fĂŒr die Bereitstellung von Updates unterstĂŒtzt: ĂŒber das Update einzelner Pakete und durch den Neubau und die Aktualisierung des gesamten Systemabbilds. Ein Repository, das etwa 3000 bereits erstellte RPM-Pakete umfasst, steht zur VerfĂŒgung, welches zur Erstellung eigener Abbilder basierend auf einer Konfigurationsdatei genutzt werden kann.
Die Distribution umfasst nur die notwendigsten Komponenten und ist fĂŒr einen minimalen Speicher- und Festplattenspeicherverbrauch sowie fĂŒr hohe Bootgeschwindigkeit optimiert. AuĂerdem zeichnet sich die Distribution durch die Einbeziehung verschiedener zusĂ€tzlicher Mechanismen zur Verbesserung der Sicherheit aus. Im Projekt wird der Ansatz âmaximale Sicherheit als Standardâ angewendet. Es besteht die Möglichkeit, Systemaufrufe mithilfe des Seccomp-Mechanismus zu filtern, Festplattenteile zu verschlĂŒsseln und Pakete ĂŒber digitale Signaturen zu verifizieren.
Die im Linux-Kernel unterstĂŒtzten Modi zur Randomisierung des Adressraums sowie Mechanismen zum Schutz vor Angriffen im Zusammenhang mit symbolischen Links, mmap, /dev/mem und /dev/kmem sind aktiviert. FĂŒr Speicherbereiche, in denen Segmente mit Daten des Kernels und der Module abgelegt werden, ist der Modus schreibgeschĂŒtzt und die AusfĂŒhrung von Code ist verboten. Optional besteht die Möglichkeit, das Laden von Kernelmodulen nach der Systeminitialisierung zu verbieten. Zum Filtern von Netzwerkpaketen wird das Werkzeug iptables verwendet. StandardmĂ€Ăig sind beim Erstellen Schutzmodi gegen StackĂŒberlĂ€ufe, PufferĂŒberlĂ€ufe und String-Formatierungsprobleme (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro) aktiviert.
Zur Verwaltung von Diensten und dem Bootprozess wird der Systemmanager systemd verwendet. FĂŒr die Paketverwaltung stehen die Paketmanager RPM und DNF zur VerfĂŒgung. Der SSH-Server ist standardmĂ€Ăig nicht aktiviert. Ein Installer fĂŒr die Distribution ist verfĂŒgbar, der sowohl im Text- als auch im Grafikmodus ausgefĂŒhrt werden kann. Im Installer gibt es die Möglichkeit, entweder mit einem vollstĂ€ndigen oder einem Basis-Paketset zu installieren, es wird ein Interface zur Auswahl der Partition, zur Festlegung des Hostnamens und zur Erstellung von Benutzern angeboten.
Quelle: opennet.ru
