Para discussão, os desenvolvedores do núcleo Linux propuseram uma série de patches elaborados pelo projeto Multikernel, que recentemente foi classificado como software aberto e agora será desenvolvido em conjunto com a comunidade. O Multikernel permite que um único computador físico execute várias instâncias independentes do núcleo Linux, que têm acesso direto aos recursos de hardware e podem ser utilizadas para executar vários ambientes de sistema isolados. O projeto foi criado pela empresa Multikernel Technologies, fundada e liderada por Cong Wang, que é responsável pelo subsistema de controle de tráfego (TC) no núcleo Linux.
Para iniciar e gerenciar núcleos, foi proposto um aprimoramento na chamada kexec, que ao contrário do kexec clássico, não se limita à substituição do núcleo em execução e permite o lançamento de instâncias adicionais do núcleo que são executadas em paralelo. Para monitoramento e depuração das instâncias do núcleo em execução, foi implementada a interface "/proc/multikernel", e para comunicação entre os núcleos e coordenação do trabalho, foi proposto um framework de comunicação Multikernel IPI.

O Multikernel é apresentado como uma nova arquitetura de isolamento, ocupando uma posição entre a virtualização por meio de hipervisor e a isolação em contêiner baseada em núcleo compartilhado. Ao contrário da virtualização, o Multikernel não requer o uso de um hipervisor, simplifica a criação de ambientes para execução isolada de aplicativos individuais e permite alcançar um alto desempenho sem os encargos da virtualização. Em comparação com os contêineres, o Multikernel oferece um alto nível de isolamento e permite o uso de um núcleo separado em cada ambiente isolado.

O desempenho com o uso do Multikernel é avaliado como próximo ao desempenho em hardware dedicado. Isso foi conseguido devido à eliminação dos encargos típicos da virtualização, que surgem devido aos manipuladores de passagem de controle entre máquinas virtuais (VM exit), à tradução do IOMMU e à intervenção do hipervisor na execução de operações privilegiadas. Suporte é dado à alocação dinâmica de recursos para os ambientes em execução e à garantia de um desempenho previsível.
A execução simultânea de vários núcleos é realizada sem virtualização, usando um processador SMP que distribui as CPUs disponíveis entre as instâncias dos núcleos Linux. Cada instância do núcleo Linux está ligada a um ou mais núcleos de CPU alocados para sua execução, enquanto compartilha os demais recursos de hardware.
Principais vantagens do Multikernel:
- Isolamento aprimorado em relação a falhas nos ambientes executados.
- Segurança aumentada através da separação no nível do núcleo.
- Uso mais eficiente de recursos em comparação com máquinas virtuais tradicionais baseadas em hipervisores, como KVM e Xen.
- Possibilidade potencial de atualizar o núcleo sem interromper a operação usando o mecanismo KHO (Kernel Hand Over).
- Suporte à integração com infraestruturas de nuvem padrão e a capacidade de transição transparente de sistemas tradicionais de virtualização e isolamento de contêineres.
- Total compatibilidade com aplicativos existentes e interfaces de sistema Linux. O Multikernel apenas altera pontualmente o núcleo, mantendo total compatibilidade em nível de API.
Fonte: opennet.ru
