Asterinas 0.18

Lançamento publicado Asterinas 0.18.0 — um sistema operacional experimental e um núcleo, escritos em Rust e voltados para a compatibilidade com o Linux ABI. O projeto se posiciona como uma tentativa de criar uma alternativa de "nível de produção" ao Linux, com foco em segurança da memória, desempenho e execução de um ambiente de usuário Linux padrão. O código do Asterinas é aberto e está disponível em GitHub, a licença principal do projeto é a MPL 2.0. O lançamento Asterinas 0.18.0 foi publicado em 4 de junho de 2026, e em 9 de junho foi notado por Phoronix.


A principal direção do lançamento é preparar o Asterinas para uso como sistema operacional convidado para VM-based Kata Containers e Confidential Containers. Para isso, foram adicionados ao núcleo os mecanismos de baixo nível que faltavam: namespaces, cgroups, virtio-fs, virtio-rng e um vsock reformulado para troca de dados entre o host e o sistema convidado.

Lista das principais mudanças:

  • Preparação para execução em Kata Containers e Confidential Containers.
    Asterinas 0.18 dá um passo importante em direção à execução como sistema operacional convidado dentro de máquinas virtuais de contêineres isoladas. Isso é crucial para cenários onde os contêineres não são executados diretamente no núcleo do host, mas dentro de uma VM separada, incluindo em ambientes de computação confidencial.

  • Suporte a namespaces.
    O núcleo agora possui IPC namespace e cgroup namespace, além do nsfs, que representa namespaces através de /proc/[pid]/ns. Isso aproxima o Asterinas do modelo de isolamento de processos usado pelos contêineres Linux.

  • Suporte inicial para cgroups.
    Foi implementado o sub-controlador de PID e suporte parcial para o sub-controlador de CPU. Em particular, agora existem estatísticas cpu.stat e placeholders para os arquivos de limites cpu.weight e cpu.max. Isso ainda não é uma implementação completa de todo o mecanismo de cgroups, mas já é uma base necessária para cenários de contêiner.

  • virtio-fs para compartilhamento de sistema de arquivos com o host.
    Foi adicionada a compatibilidade com virtio-fs, permitindo que o sistema convidado utilize o sistema de arquivos fornecido pelo host. Para contêineres VM, este é um dos mecanismos chave para transferência de dados sem soluções contornadas pesadas.

  • virtio-rng e /dev/hwrng.
    Foi adicionado o virtio-rng com exportação de entropia de hardware através de /dev/hwrng. Isso é necessário para o funcionamento normal de operações criptográficas e geradores de números aleatórios dentro do sistema operacional convidado.

  • vsock reformulado.
    O vsock foi completamente reescrito — o mecanismo de comunicação entre o host e a máquina virtual guest. No contexto do Kata Containers e dos Confidential Containers, isso é importante para canais de controle, agentes e interação de serviços entre VM e o ambiente de execução.

  • Foi adicionado o ptrace e suporte para depuração de userspace.
    A chamada de sistema ptrace foi implementada com as principais operações PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK e PTRACE_POKE. Graças a isso, agora é possível executar ferramentas de depuração conhecidas como GDB e strace no Asterinas. Documentação sobre o uso comprovado e verificações CI foram adicionadas.

  • Novo driver NVMe.
    Um driver NVMe foi adicionado à camada de bloco. Isso expande as capacidades do Asterinas em trabalhar com dispositivos de armazenamento modernos e torna o sistema mais próximo de uma execução prática em hardware de servidor real e virtualizado.

  • Driver EXT2 completamente reescrito.
    O sistema de arquivos EXT2 foi implementado do zero. Os desenvolvedores conectam isso a uma modernização geral da pilha de armazenamento: o subsistema de arquivos deve se tornar mais confiável e adequado para a execução de um ambiente de usuário real.

  • Mudanças no VFS e na cache de páginas.
    Um mecanismo de revalidação de Dentry foi adicionado ao VFS, a implementação da cache de páginas foi revisada, pivot_root foi implementado, suporte para O_TMPFILE para open/openat foi adicionado, e um erro na cache de páginas que poderia levar a vazamentos de memória não inicializada no userspace foi corrigido.

  • Expansão do procfs.
    Adicionados /proc/mounts, /proc/[pid]/auxv, /proc/[tid], entradas adicionais em /proc/[pid]/maps e mountstats. Isso aumenta a compatibilidade com aplicativos e ferramentas de diagnóstico Linux que esperam a estrutura familiar de /proc.

  • Melhorias na rede.
    Além do vsock reescrito, suporte inicial para IPv6 foi adicionado, correções na implementação do UDP e verificação de permissões ao vincular a portas privilegiadas: a ligação a essas portas agora é rejeitada sem CAP_NET_BIND_SERVICE.

  • Mecanismo de capacidades e framework LSM inicial.
    A versão inclui a implementação de capacidades, suporte para conjunto de capacidade limitante, correções em chamadas de sistema relacionadas a credentials e o esqueleto inicial do LSM. Isso faz parte do trabalho para aproximar o modelo de segurança do Asterinas do Linux.

  • Melhorias no PCI, TTY e console.
    A detecção de dispositivos PCI foi aprimorada, suporte para PCI ECAM em x86 foi adicionado, suporte a múltiplos TTY, console NS16550A UART, /dev/ttyS0 e o parâmetro console=ttyS0 foram implementados. O trabalho com o teclado também foi melhorado.

  • Expansão do Asterinas NixOS.
    No Asterinas NixOS agora, mais de 100 pacotes populares são verificados, incluindo Codex, QEMU e Firefox. O suporte para ARCH_GET_GS e ARCH_SET_GS foi adicionado especificamente para o Firefox.

  • Novos conjuntos de testes.
    O projeto integrou Linux kselftest, xfstests, testes padrão de Go, Python e JDK, bem como testes QEMU para aplicações de virtualização. Isso é importante como um sinal do amadurecimento do projeto: Asterinas está sendo cada vez mais testado com cargas reais do Linux.

  • Mudanças em OSTD e OSDK.
    No OSTD, o crate log foi substituído por uma API de log própria, as APIs DMA foram reformuladas, um framework para operações de cópia de memória tipadas foi adicionado, além da refatoração do Pod utilizando zerocopy. Um ambiente Docker para desenvolvimento foi adicionado para ARM/aarch64.

  • Atualização da documentação.
    No Asterinas Book, foram adicionadas regras de codificação, análise de soundness para OSTD, bem como documentação sobre Kata Containers e Confidential Containers. Isso destaca que o cenário de virtualização em contêineres se tornou uma das principais direções do projeto.

Asterinas 0.18 não deve ser visto como uma substituição ao Linux para uso diário, mas a versão avança significativamente o projeto em direção a cenários práticos de servidores e contêineres. Três direções são particularmente importantes: compatibilidade com programas Linux, suporte a mecanismos de isolamento e operação em ambientes de contêineres baseados em VM.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster