A Microsoft publicou a primeira atualização estável da nova versão do CBL-Mariner 2.0 (Common Base Linux Mariner), que está sendo desenvolvida como uma plataforma básica universal para ambientes Linux utilizados em infraestrutura de nuvem, sistemas edge e diversos serviços da Microsoft. O projeto visa unificar as soluções Linux usadas na Microsoft e simplificar a manutenção de sistemas Linux para diferentes propósitos. As inovações do projeto são distribuídas sob a licença MIT. Os pacotes são compilados para as arquiteturas aarch64 e x86_64.
A nova versão se destaca por uma atualização significativa das versões de software. Inclui a atualização do núcleo do Linux para a versão 5.15 (na versão 1.0 foi usado o núcleo 5.4), 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. O repositório base inclui componentes para a construção de interface gráfica, como Wayland 1.20, Mesa 21.0, GTK 3.24 e X.Org Server 1.20.10, que anteriormente eram fornecidos em um repositório separado coreui. Adicionadas compilações do núcleo com patches PREEMPT_RT para uso em sistemas que operam em tempo real.
O CBL-Mariner fornece um pequeno conjunto de pacotes básicos que atuam como uma base universal para criar conteúdos de contêineres, ambientes host e serviços que são executados em infraestruturas de nuvem e em dispositivos edge. Soluções mais complexas e especializadas podem ser criadas adicionando pacotes adicionais sobre o CBL-Mariner, mas a base para todos esses sistemas permanece a mesma, o que facilita a manutenção e a preparação de atualizações. Por exemplo, o CBL-Mariner é usado como base para o mini-distribuição WSLg, que fornece componentes da pilha gráfica para permitir a execução de aplicativos GUI Linux em ambientes baseados na WSL2 (Windows Subsystem for Linux). A funcionalidade expandida no WSLg é realizada através da inclusão de pacotes adicionais como servidor Weston, XWayland, PulseAudio e FreeRDP.
O sistema de construção CBL-Mariner permite gerar tanto pacotes RPM individuais a partir de arquivos SPEC e códigos fontes quanto imagens de sistema monolíticas, formadas com a ferramenta rpm-ostree e atualizadas de forma atômica, sem dividir em pacotes separados. Assim, duas modelos de entrega de atualizações são suportados: através da atualização de pacotes individuais e da reconstrução e atualização de toda a imagem do sistema. Um repositório está disponível, incluindo cerca de 3000 pacotes RPM já construídos, que podem ser usados para compor suas próprias imagens com base no arquivo de configuração.
A distribuição inclui apenas os componentes mais essenciais e é otimizada para um consumo mínimo de memória e espaço em disco, bem como para alta velocidade de inicialização. A distribuição também se destaca por incluir vários mecanismos adicionais para aumentar a segurança. O projeto aplica a abordagem de "máxima segurança por padrão". Oferece a possibilidade de filtrar chamadas de sistema através do mecanismo seccomp, criptografia de partições de disco e verificação de pacotes por assinatura digital.
Modos de randomização de espaço de endereço suportados no núcleo Linux estão ativados, assim como mecanismos de proteção contra ataques relacionados a links simbólicos, mmap, /dev/mem e /dev/kmem. Para áreas da memória onde os segmentos de dados do núcleo e dos módulos estão alocados, a configuração é apenas para leitura e a execução de código é proibida. Opcionalmente, é possível proibir a carga de módulos do núcleo após a inicialização do sistema. O ferramenta iptables é utilizada para filtrar pacotes de rede. Durante a construção, os modos de proteção contra estouro de pilha, estouros de buffer e problemas de formatação de strings (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro) estão ativados por padrão.
Para gerenciar serviços e carga, é utilizado o gerenciador de sistema systemd. Para gerenciar pacotes, são fornecidos os gerenciadores de pacotes RPM e DNF. O servidor SSH não é habilitado por padrão. Para a instalação da distribuição, há um instalador que pode operar tanto em modos texto quanto gráfico. O instalador oferece a opção de instalação com um conjunto completo ou básico de pacotes, além de uma interface para selecionar a partição, nome do host e criação de usuários.
Fonte: opennet.ru
