E foi lançado o CBL-Mariner 2.0.20220426 com várias atualizações de software, e mais. Confira as novidades e descubra como criar sua própria compilação dela.
CBL-Mariner não é uma distribuição de propósito geral como qualquer outra que teríamos em mente (como Ubuntu ou Fedora), embora seja de código aberto e já esteja sendo usado por sistemas como o Windows Subsystem for Linux (WSL), Azure Sphere OS, SONiC e outros esforços baseados em Linux.
CBL-Mariner é uma distribuição caracterizada por fornecer um pequeno conjunto padrão de pacotes principais que servem como base universal para a criaçã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, o CBL-Mariner é usado como base para a minidistribuiçã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 autônomos baseados em arquivos fonte 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 é otimizada para consumo mínimo de memória e espaço em disco, bem como 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 de 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.
A capacidade de desabilitar o carregamento de módulos do kernel após a inicialização do sistema está disponível opcionalmente. 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).
O gerenciador de sistema systemd é usado para gerenciar serviços e inicialização. Os gerenciadores de pacotes RPM e DNF são fornecidos para gerenciamento de pacotes.
Agora, a Microsoft lançou recentemente a nova atualização de sua distribuição Linux “CBL-Mariner 2.0.20220426” (Common Base Linux Mariner), que está sendo desenvolvida como uma plataforma de base universal para ambientes Linux usados em infraestrutura em nuvem e vários serviços da Microsoft.
Novidades do CBL-Mariner 2.0.20220426
A nova versão é destacada por uma grande atualização nas 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, observa-se que o repositório base inclui componentes para a criação de 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 as compilações de pacotes são geradas para as arquiteturas aarch64 e x86_64.
O servidor 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.
Por fim, se você tiver interesse em saber mais sobre o assunto, consulte os detalhes no seguinte endereço.
Como criar sua própria compilação CBL-Mariner?
Para aqueles que estão interessados em aprender mais sobre o CBL-Mariner, eles devem saber que podem construir sua própria imagem a partir do Ubuntu ou de qualquer distribuição Linux, somente neste caso seguiremos as instruções para gerar a imagem no Ubuntu.
Para fazer isso primeiro, devemos estabelecer alguns pré-requisitos que precisaremos para construir a imagem ISO:
sudo apt install make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk
Agora procedemos para obter o código da CBL-Mariner:
git clone https://github.com/microsoft/CBL-Mariner.git
E agora teremos que entrar no diretório CBL-Mariner/toolkit e criar a imagem ISO de instalação.
cd CBL-Mariner/toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json
Quando terminar, podemos encontrar o arquivo ISO no diretório ../out/images/full/. Com a imagem do sistema criada, podemos testar o sistema em uma máquina virtual, seja com VirtualBox, VMWare, Boxes ou qualquer outro de sua preferência.
A única coisa que você precisa configurar na máquina virtual é que ela tenha pelo menos 2 GB de RAM, um núcleo e 16 GB de armazenamento.
Por fim, caso tenha interesse em saber mais sobre o assunto, consulte os detalhes no seguinte endereço.