Hace poco Microsoft dio a conocer el lanzamiento de la nueva versión de su distribución de Linux «CBL-Mariner 1.0» (Common Base Linux Mariner), que está marcada como la primera versión estable del proyecto y que se utiliza en sus proyectos internos de Linux, como el Subsistema de Windows para Linux (WSL) y el sistema operativo Azure Sphere.
Para quienes desconocen de CBL-Mariner, deben saber que esta es una distribución interna de Linux para la infraestructura en la nube y los productos y servicios de Microsoft. CBL-Mariner está diseñado para proporcionar una plataforma coherente para estos dispositivos y servicios y mejorará la capacidad de Microsoft para mantenerse al día con las actualizaciones de Linux.
La distribución es destacable, ya que proporciona un pequeño conjunto típico de paquetes básicos que actúan como una base universal para crear el llenado de contenedores, entornos de host y servicios que se ejecutan en infraestructuras en la nube y en dispositivos de borde. Se pueden crear soluciones más complejas y especializadas agregando paquetes adicionales sobre CBL-Mariner, pero la base de todos estos sistemas permanece sin cambios, lo que simplifica el mantenimiento y la preparación de actualizaciones.
Por ejemplo, CBL-Mariner se utiliza como base para WSL, que proporciona los componentes de la pila de gráficos para organizar el lanzamiento de aplicaciones GUI de Linux en entornos basados en el subsistema WSL2 (Subsistema de Windows para Linux). La base de esta distribución no ha cambiado y la funcionalidad ampliada se implementa mediante la inclusión de paquetes adicionales con un servidor compuesto Weston, XWayland, PulseAudio y FreeRDP.
El sistema de compilación CBL-Mariner permite generar paquetes RPM separados basados en archivos SPEC y códigos fuente, e imágenes del sistema monolítico generadas usando el kit de herramientas rpm-ostree y actualizadas atómicamente sin dividirse en paquetes separados. En consecuencia, se admiten dos modelos de entrega de actualizaciones: mediante la actualización de paquetes individuales y mediante la reconstrucción y actualización de la imagen completa del sistema. La distribución incluye solo los componentes más esenciales y está optimizada para un consumo mínimo de memoria y espacio en disco, así como para altas velocidades de descarga. La distribución también se destaca por la inclusión de varios mecanismos adicionales para mejorar la protección.
El proyecto adopta el enfoque de «máxima seguridad por defecto», además de que proporciona la capacidad de filtrar llamadas al sistema mediante el mecanismo seccomp, cifrado de particiones de disco, verificación de paquetes mediante firma digital. Los modos de protección de desbordamiento de pila, desbordamiento de búfer y formato de línea están habilitados de forma predeterminada durante la fase de compilación.
Se han activado los modos de aleatorización del espacio de direcciones admitidos en el kernel de Linux, así como los mecanismos de protección contra ataques relacionados con enlaces simbólicos, mientras que para las áreas de memoria en las que se encuentran los segmentos con datos del núcleo y del módulo, se establece el modo de solo lectura y se prohíbe la ejecución del código. Opcionalmente, está disponible la capacidad de prohibir la carga de módulos del kernel después de la inicialización del sistema.
No se proporcionan imágenes ISO estándar. Se supone que el usuario puede crear una imagen con el relleno necesario él mismo (las instrucciones de montaje se proporcionan para Ubuntu 18.04). Hay disponible un repositorio de RPM prediseñados que puede utilizar para crear sus propias imágenes basadas en el archivo de configuración.
El administrador de systemd se utiliza para administrar servicios y bootstrapping y el paquete de gestores de RPM y DNF ( TDNF variante de vmWare) se suministran para la gestión de paquetes, mientras que el servidor SSH no está habilitado de forma predeterminada.
Para instalar la distribución, se proporciona un instalador que puede funcionar tanto en modo texto como gráfico. El instalador brinda la capacidad de instalar con un conjunto completo o básico de paquetes, ofrece una interfaz para elegir una partición de disco, elegir un nombre de host y crear usuarios.
Si quieres conocer más al respecto, puedes consultar los detalles en el siguiente enlace.