No ano passado, discutimos aqui no blog uma proposta da ByteDance (criadora do TikTok) para um utilitário chamado Parker (PARTitioned KERnel), uma tecnologia experimental que permite que vários kernels do Linux sejam executados simultaneamente. E agora, pouco mais de um ano e meio depois, um novo utilitário público do projeto, "Multikernel Linux (mklinux-v7.0-mk2)", foi lançado.
Este desenvolvimento introduz uma variante especializada do kernel Linux que permite a execução simultânea de múltiplas instâncias independentes do kernel em um único servidor físico. Ao operar diretamente no hardware, essa tecnologia elimina completamente a necessidade de hipervisores ou camadas de virtualização, concedendo a cada instância acesso direto à memória, CPU e dispositivos alocados.
Baseado no kernel Linux 7.0 lançado recentemente, o projeto permite habilitar esse recurso por meio do parâmetro de configuração CONFIG_MULTIKERNEL . Se essa opção for desabilitada, o kernel resultante será exatamente o mesmo e se comportará como o Linux 7.0 padrão. Atualmente, esta primeira versão (v7.0-mk2) suporta exclusivamente arquiteturas x86_64 e foi projetada para reduzir a lacuna de desempenho e segurança entre a virtualização tradicional e o isolamento de contêineres.
Isolamento sem perda de desempenho
O maior problema da virtualização é o "custo" de desempenho imposto pelos hipervisores. Em contraste, o Linux Multikernel elimina as transições de saída da máquina virtual , a tradução de memória de segundo nível e a sobrecarga gerada pelos modelos de dispositivo.
De acordo com dados de desempenho publicados após testes em processadores Xeon Gold 5418Y (Sapphire Rapids), o sistema multikernel demonstra um aumento drástico na velocidade de execução em comparação com máquinas virtuais KVM. Por exemplo, a troca de contexto entre processos é 2,5 vezes mais rápida, a latência do pipe é reduzida em mais da metade (2,18x) e as chamadas básicas do sistema, como operações de leitura e gravação, apresentam uma redução de mais de 25% no tempo de resposta.
Em comparação com os contêineres Docker tradicionais, o Multikernel oferece proteção superior porque, como os contêineres compartilham o mesmo kernel do host, uma vulnerabilidade em nível de kernel, um pânico ou a saturação de bloqueios internos afetam todos os tenants. No ecossistema Multikernel, cada ambiente tem seu próprio kernel independente ; ou seja, se uma instância sofrer uma falha crítica, as outras continuam operando sem serem afetadas, garantindo um ambiente isolado ideal para executar desde servidores web até cargas de trabalho intensivas de treinamento de IA (aprendizado de máquina) no mesmo hardware.
Atribuição e orquestração dinâmicas com Kerf
O Linux multikernel opera utilizando um kernel host que gerencia um grande conjunto de recursos (CPUs, RAM e dispositivos PCI). Utilizando a estrutura de árvore de dispositivos existente (acessível em /sys/fs/multikernel/), o kernel aloca recursos desse conjunto e inicia "kernels filhos" por meio do subsistema nativo kexec_file_load(). Graças aos recursos de hotplug do Linux, esses recursos podem ser movidos dinamicamente entre instâncias sem a necessidade de reiniciar o servidor, garantindo desempenho previsível e ajustável em tempo real.
Para orquestrar esse ecossistema, os desenvolvedores introduziram a ferramenta de linha de comando Kerf . Esse utilitário gerencia todo o ciclo de vida das instâncias, utilizando módulos complementares de código aberto. Um deles é o Lazy CMA, que aloca memória física contígua em tempo de execução sem exigir qualquer configuração prévia à inicialização.
O outro pilar é o DAXFS, um módulo que permite que instâncias compartilhem sistemas de arquivos diretamente na memória; graças a isso, o Kerf pode inicializar um kernel filho diretamente dentro de uma imagem de contêiner Docker, aproveitando seu sistema de arquivos sem a necessidade de camadas de emulação e usando descritores em memória para interconexão de rede sem cópia de dados.
Vale ressaltar que esta primeira versão passou por testes de estabilidade intensivos em arquiteturas de paginação de 5 níveis e KASLR ativo, demonstrando que a recuperação de recursos é completamente segura mesmo quando um kernel filho falha.
Ao permitir que cargas de trabalho que colidissem devido a bloqueios do sistema (como um grande número de processos de desvinculação ou renomeação no mesmo cache) sejam divididas entre kernels separados, alinhados aos sockets físicos do processador, o Multikernel Linux demonstra a capacidade de escalar além da barreira de desempenho imposta por um único kernel monolítico, inaugurando uma nova era na consolidação de servidores e na computação em nuvem de alto desempenho.
Por fim, se tiver interesse em saber mais, você pode encontrar os detalhes no seguinte link.