Microsoft heeft de release van de CBL-Mariner 1.0 distributie (Common Base Linux Mariner) gepubliceerd, gemarkeerd als de eerste stabiele release van het project. De CBL-Mariner distributie wordt ontwikkeld als een universeel basisplatform voor Linux-omgevingen, gebruikt in cloudinfrastructuur, edge-systemen en verschillende Microsoft-diensten. Het project is gericht op het uniformeren van de gebruikte Linux-oplossingen bij Microsoft en het vereenvoudigen van het onderhoud van verschillende Linux-systemen.
De distributie biedt een kleine standaardset van essentiële pakketten, die fungeren als een universele basis voor het creëren van containerinhoud, hostomgevingen 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 deze systemen blijft ongewijzigd, wat het onderhoud en de voorbereiding van updates vereenvoudigt.
Bijvoorbeeld, CBL-Mariner wordt gebruikt als basis voor de mini-distributie WSLg, die de componenten van de grafische stack levert voor het uitvoeren van GUI-applicaties van Linux in omgevingen op basis van WSL2 (Windows Subsystem for Linux). De basis van deze distributie blijft ongewijzigd, terwijl uitgebreide functionaliteit wordt gerealiseerd door het toevoegen van extra pakketten. server Weston, XWayland, PulseAudio en FreeRDP.
Het CBL-Mariner buildsysteem stelt in staat om zowel afzonderlijke RPM-pakketten te genereren op basis van SPEC-bestanden en broncode, als monolithische systeemimages die worden samengesteld met behulp van het rpm-ostree-hulpmiddel en atomair worden bijgewerkt zonder deze op te splitsen in afzonderlijke pakketten. Er zijn dus twee modellen voor het leveren van updates: via updates van afzonderlijke pakketten en via het opnieuw bouwen en bijwerken van de complete systeemimage. De distributie bevat alleen de meest noodzakelijke componenten en is geoptimaliseerd voor minimaal geheugen- en schijfgebruik, evenals voor een hoge opstartsnelheid. De distributie is ook opmerkelijk vanwege het opnemen van verschillende extra mechanismen ter verbetering van de beveiliging.
In het project wordt de benadering van 'maximale beveiliging standaard' toegepast. Er is een mogelijkheid om systeemaanroepen te filteren met behulp van het seccomp-mechanisme, schijfpartities te versleutelen en pakketten te verifiëren via digitale handtekeningen. Tijdens de bouw zijn standaard de beveiligingsmodi tegen stackoverflows, bufferoverflows en format stringproblemen ingeschakeld (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro). De ondersteunde randomisatie-modus van het Linux-kernel is geactiveerd, evenals mechanismen ter bescherming tegen aanvallen met symbolische links, mmap, /dev/mem en /dev/kmem. Voor geheugengebieden waarin segmenten met kernel- en modulegegevens worden geplaatst, is de modus alleen-lezen ingesteld en is het uitvoeren van code verboden. Optioneel is het mogelijk om het laden van kernelmodules na de systeeminitialisatie te verbieden. Voor de filtering van netwerkpakketten wordt de iptables-toolkit ingezet.
Готовые 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
Voor het beheer van diensten en opstartprocessen wordt de systeemmanager systemd gebruikt. Voor pakketbeheer worden de pakketbeheerders RPM en DNF (de tdnf-variant van vmWare) geleverd. De SSH-server is standaard niet ingeschakeld. Er is een installer beschikbaar voor de distributie, die zowel in tekst- als grafische modus kan werken. In de installer is er de mogelijkheid voor een volledige of basis installatie van pakketten, en er is een interface voor het selecteren van de schijfpartitie, het kiezen van een hostnaam en het aanmaken van gebruikers.

Bron: opennet.ru
