Microsoft heeft de eerste stabiele update van de nieuwe tak van de CBL-Mariner 2.0-distributie (Common Base Linux Mariner) gepubliceerd. Deze ontwikkelt zich tot een universeel basisplatform voor Linux-omgevingen die worden gebruikt in cloudinfrastructuren, edge-systemen en verschillende Microsoft-diensten. Het project is gericht op het verenigen van de Linux-oplossingen die in Microsoft worden gebruikt en het vereenvoudigen van het onderhoud van Linux-systemen voor verschillende doeleinden. De bevindingen van het project zijn beschikbaar onder de MIT-licentie. Pakketbuilds worden gemaakt voor de architecturen aarch64 en x86_64.
De nieuwe uitgave valt op door een aanzienlijke update van de programmaversies. Inclusief zijn er updates voor de Linux-kernel 5.15 (in tak 1.0 werd kernel 5.4 gebruikt), 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 en ostree 2022.1. De basisrepository bevat componenten voor het bouwen van grafische interfaces, zoals Wayland 1.20, Mesa 21.0, GTK 3.24 en X.Org Server 1.20.10, die eerder werden geleverd in een aparte coreui-repository. Kernbuilds met PREEMPT_RT-patches zijn toegevoegd voor gebruik in systemen die in real-time-modus draaien.
De CBL-Mariner-distributie biedt een kleine standaardset van basispakketten die als een universele basis dienen voor het creƫren van de inhoud van containers, host-omgevingen en diensten die draaien in cloudinfrastructuren en op edge-apparaten. Complexere en gespecialiseerde oplossingen kunnen worden gecreƫerd door extra pakketten bovenop CBL-Mariner toe te voegen, maar de basis voor al dergelijke systemen blijft ongewijzigd, wat het onderhoud en de voorbereiding van updates vergemakkelijkt. Bijvoorbeeld, CBL-Mariner wordt gebruikt als basis voor de mini-distributie WSLg, waarin componenten van de grafische stack worden geleverd voor het uitvoeren van GUI-applicaties van Linux in omgevingen die zijn gebaseerd op het WSL2 (Windows Subsystem for Linux). Uitgebreide functionaliteit in WSLg wordt gerealiseerd door het insluiten van extra pakketten met composiet. server Weston, XWayland, PulseAudio en FreeRDP.
Het CBL-Mariner build-systeem maakt het mogelijk om zowel afzonderlijke RPM-pakketten te genereren op basis van SPEC-bestanden en bronbestanden, als ook monolithische systeembestanden te creƫren met behulp van de rpm-ostree-tool en atomair te updaten zonder deze op te splitsen in afzonderlijke pakketten. Er worden twee modellen voor het leveren van updates ondersteund: via updates van individuele pakketten en door het opnieuw opbouwen en updaten van het gehele systeembestand. Er is een repository beschikbaar met ongeveer 3000 al gebouwde RPM-pakketten die gebruikt kunnen worden om eigen beelden te samenstellen op basis van een configuratiebestand.
De distributie bevat alleen de meest noodzakelijke componenten en is geoptimaliseerd voor minimaal geheugengebruik en schijfruimte, evenals voor hoge opstartsnelheid. De distributie is ook opmerkelijk door de toevoeging van verschillende extra mechanismen ter verbetering van de veiligheid. In het project wordt de 'maximum security by default'-benadering toegepast. Er is de mogelijkheid om systeemsystemen te filteren met het seccomp-mechanisme, het versleutelen van schijfpartities en de verificatie van pakketten via digitale handtekeningen.
Gesteunde randomization modes van de Linux-kernel zijn geactiveerd, evenals mechanismen ter bescherming tegen aanvallen gerelateerd aan symbolische links, mmap, /dev/mem en /dev/kmem. Voor geheugen gebieden waarin de segmenten met kernel- en modulegegevens zijn geplaatst, is de modus alleen-lezen ingesteld en is de uitvoering van code verboden. Optioneel is er de mogelijkheid om het laden van kernelmodules na systeeminitialisatie te verbieden. Voor het filteren van netwerkpakketten wordt het iptables-gereedschap gebruikt. Tijdens het bouwen zijn standaard de beschermingsmodi tegen stackoverflows, buffer overflows en format string issues ingeschakeld (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Voor het beheer van services en laadtechnieken wordt de systeembeheerder systemd gebruikt. Voor het beheren van pakketten worden de pakketbeheerders RPM en DNF geleverd. De SSH-server is standaard niet ingeschakeld. Voor de installatie van de distributie is er een installer die zowel in tekst- als grafische modus kan werken. In de installer is er de mogelijkheid om een volledige of basisset van pakketten te installeren, evenals een interface voor het kiezen van de schijfpartitie, het kiezen van de hostnaam en het aanmaken van gebruikers.
Bron: opennet.ru
