Microsoft revelou lançando recentemente a primeira atualização estável de a nova ramificação da sua distribuição Linux "CBL-Mariner 2.0" (Common Base Linux Mariner), que está sendo desenvolvido como uma plataforma base universal para ambientes Linux usados em infraestrutura em nuvem, sistemas de borda e vários serviços da Microsoft.
O projeto visa unificar as soluções Linux utilizadas na Microsoft e simplificar a manutenção dos sistemas Linux para diversas finalidades até o momento. Os desenvolvimentos do projeto são distribuídos sob a licença do MIT.
Sobre a CBL Mariner
Para quem não conhece a CBL-Mariner, saiba que esta distribuição caracteriza-se por fornecer um pequeno conjunto padrão de pacotes básicos que servem como base universal para a construção de contêineres, ambientes de hospedagem e serviços executados em infraestruturas de nuvem e dispositivos de borda.
Soluções mais complexas e especializadas podem ser criadas adicionando pacotes adicionais ao CBL-Mariner, mas a base para todos esses sistemas permanece a mesma, facilitando a manutenção e a preparação para atualizações. Por exemplo, CBL-Mariner é usado como base da mini-distribuição WSLg, que fornece componentes de pilha de gráficos para iniciar aplicativos Linux GUI em ambientes baseados no subsistema WSL2 (Windows Subsystem for Linux). A funcionalidade estendida no WSLg é feita incluindo pacotes adicionais com Weston Composite Server, XWayland, PulseAudio e FreeRDP.
O sistema de compilação CBL-Mariner permite gerar pacotes RPM independentes baseado em arquivos de origem e SPEC, bem como imagens de sistema monolíticas geradas com o kit de ferramentas rpm-ostree e atualizadas atomicamente sem dividir em pacotes separados. Consequentemente, dois modelos de entrega de atualização são suportados: atualizando pacotes individuais e reconstruindo e atualizando toda a imagem do sistema. Um repositório está disponível com cerca de 3000 RPMs já construídos que você pode usar para construir suas próprias imagens com base no arquivo de configuração.
A distribuição inclui apenas os componentes mais necessários e é otimizado para consumo mínimo de memória e espaço em disco, bem como para altas velocidades de download. A distribuição também se destaca por incluir vários mecanismos de segurança adicionais.
O projeto usa uma abordagem de "segurança máxima por padrão". Fornece a capacidade de filtrar chamadas de sistema usando o mecanismo seccomp, criptografar partições de disco e verificar pacotes usando assinaturas digitais.
Os modos de randomização do espaço de endereçamento suportados no kernel Linux são ativados, assim como os mecanismos de proteção contra ataques relacionados a links simbólicos, mmap, /dev/mem e /dev/kmem. Para áreas de memória que contêm segmentos com dados do kernel e do módulo, o modo é definido como somente leitura e a execução de código é proibida.
Opcionalmente disponível é a capacidade de desabilitar o carregamento de módulos do kernel após a inicialização do sistema. O kit de ferramentas iptables é usado para filtrar pacotes de rede. Por padrão, a etapa de compilação habilita os modos de proteção contra estouros de pilha, estouros de buffer e problemas de formatação de string (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
administrador do sistema systemd é usado para gerenciar serviços e inicialização. Os gerenciadores de pacotes RPM e DNF são fornecidos para gerenciamento de pacotes.
O que há de novo no CBL-Mariner 2.0
A nova versão destaca-se por uma grande atualização de versões de software, isso inclui versões atualizadas do kernel linux 5.15, 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.
Além disso, nota-se que o repositório base inclui componentes para criar uma interface gráfica, como Wayland 1.20, Mesa 21.0, GTK 3.24 e X.Org Server 1.20.10, que foram enviados anteriormente em um repositório coreui separado.
Também é observado que compilações de kernel com patches PREEMPT_RT foram adicionadas para uso em sistemas de tempo real.
Finalmente para os interessados, você deve saber que compilações de pacotes são geradas para as arquiteturas aarch64 e x86_64.
O servidor O SSH não está habilitado por padrão. Para instalar a distribuição, é fornecido um instalador que pode funcionar nos modos texto e gráfico.
O instalador fornece a capacidade de instalar com um conjunto completo ou básico de pacotes, fornece uma interface para selecionar uma partição de disco, escolher um nome de host e criar usuários.