La empresa Microsoft ha publicado una versión del distribuidor CBL-Mariner 1.0 (Common Base Linux Mariner), que se marca como el primer lanzamiento estable del proyecto. El distribuidor CBL-Mariner se desarrolla como una plataforma base universal para entornos Linux, utilizados en infraestructura en la nube, sistemas edge y diversos servicios de Microsoft. El proyecto tiene como objetivo unificar las soluciones de Linux aplicadas en Microsoft y simplificar el mantenimiento de sistemas Linux de diversos propósitos para mantenerlos actualizados. Los desarrollos del proyecto se distribuyen bajo la licencia MIT.
El distribuidor proporciona un pequeño conjunto estándar de paquetes básicos que actúan como una base universal para crear la infraestructura de contenedores, entornos de hosting y servicios que se ejecutan en infraestructuras en la nube y en dispositivos edge. Soluciones más complejas y especializadas pueden ser creadas añadiendo paquetes adicionales sobre CBL-Mariner, pero la base para todos esos sistemas permanece inalterada, lo que simplifica el soporte y la preparación de actualizaciones.
Por ejemplo, CBL-Mariner se utiliza como base para el mini-distrubuidor WSLg, que proporciona componentes de la pila gráfica para habilitar la ejecución de aplicaciones GUI de Linux en entornos basados en el subsistema WSL2 (Windows Subsystem for Linux). La base de este distribuidor permanece inalterada, mientras que la funcionalidad ampliada se implementa mediante la inclusión de paquetes adicionales. el servidor Weston, XWayland, PulseAudio y FreeRDP.
El sistema de construcción CBL-Mariner permite generar tanto paquetes RPM individuales basados en archivos SPEC y códigos fuente, como imágenes del sistema monolíticas, formadas con la herramienta rpm-ostree y actualizadas de forma atómica sin dividirlas en paquetes individuales. De este modo, se admiten dos modelos de entrega de actualizaciones: mediante la actualización de paquetes individuales y mediante la reconstrucción y actualización de toda la imagen del sistema. El distribuidor incluye únicamente los componentes más necesarios y está optimizado para un consumo mínimo de memoria y espacio en disco, así como para una alta velocidad de carga. El distribuidor también se destaca por incluir diversos mecanismos adicionales para mejorar la seguridad.
En el proyecto se aplica el enfoque de "máxima seguridad por defecto". Se proporciona la posibilidad de filtrar llamadas al sistema mediante el mecanismo seccomp, cifrado de particiones de disco, verificación de paquetes mediante firma digital. En la etapa de compilación, por defecto se han habilitado modos de protección contra desbordamientos de pila, desbordamientos de búfer y problemas de formato de cadenas (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro). Se han activado los modos de aleatorización del espacio de direcciones soportados en el núcleo de Linux, así como mecanismos de protección contra ataques relacionados con enlaces simbólicos, mmap, /dev/mem y /dev/kmem. Para las áreas de memoria donde se colocan segmentos con datos del núcleo y módulos, se ha establecido un modo de solo lectura y se prohíbe la ejecución de código. Opcionalmente, se dispone de la posibilidad de prohibir la carga de módulos del núcleo después de la inicialización del sistema. Para filtrar paquetes de red se utiliza la herramienta iptables.
Готовые 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
Para la gestión de servicios y el arranque se utiliza el gestor de sistemas systemd. Para la gestión de paquetes se suministran los gestores de paquetes RPM y DNF (la variante tdnf de vmWare). El servidor SSH no se habilita por defecto. Para la instalación de la distribución se ofrece un instalador que puede funcionar tanto en modo texto como gráfico. En el instalador se ofrece la posibilidad de instalar con un conjunto completo o básico de paquetes, se presenta una interfaz para seleccionar la partición del disco, el nombre de host y la creación de usuarios.

Fuente: opennet.ru
