Há um novo monitor de máquina virtual (VMM) na cidade: OpenVMM. Este novo VMM modular, multiplataforma e de código aberto representa um passo à frente no compromisso da Microsoft com tecnologias de código aberto e soluções de virtualização seguras e eficientes.
Claro, há muitos VMMs. Hyper-V, QEMU e VirtualBox vêm rapidamente à mente. O que é diferente sobre o OpenVMM é que ele é escrito em Rust. Isso é importante porque, como Joe Stocker, CEO da Patriot Consulting, uma empresa de segurança da Microsoft, escreveu no Twitter, "Rust é mais seguro do que C ou C++ porque seu modelo de propriedade e verificador de empréstimo impõem garantias estritas de segurança de memória em tempo de compilação e simultaneidade, prevenindo vulnerabilidades comuns como desreferenciamento de ponteiro nulo, estouros de buffer e corridas de dados."
O OpenVMM foi projetado para operar em vários sistemas operacionais, demonstrando a dedicação da Microsoft à compatibilidade entre plataformas. O projeto, disponível no GitHub sob a licença MIT, suporta uma ampla gama de arquiteturas e APIs de virtualização, tornando-o uma ferramenta versátil e poderosa para desenvolvedores e administradores de sistemas.
Desenvolvido para Computação Confidencial
O OpenVMM foi desenvolvido principalmente como um componente do OpenHCL, o novo paravisor de código aberto da Microsoft para VM de computação confidencial. O OpenVMM habilita VMs confidenciais com suporte de hardware e suporta sistemas operacionais existentes sem modificações. Ele também pode gerenciar VMs convencionais.
Especificamente, para o OpenHCL, o OpenVMM suporta convidados de sistema operacional virtual com dispositivos atribuídos e fornece suporte à tradução de dispositivos. Além disso, ele permite que os usuários compartilhem arquitetura e convidados confidenciais e não confidenciais. Em ambos os casos, o VMM fornece os mesmos serviços adaptados a cada requisito. Isso, de acordo com Caroline Perez-Vargas da Microsoft em uma postagem de blog, "evita soluções de virtualização fragmentadas entre VMs confidenciais e não confidenciais, caminhando para fechar as lacunas de recursos de VMs confidenciais".
Limitações Atuais
No entanto, é importante notar que o OpenVMM ainda está em seus estágios iniciais. A Microsoft tem sido transparente sobre as limitações atuais do projeto, afirmando que ele ainda não está pronto para uso em produção. A empresa o descreve como "mais parecido com uma plataforma de desenvolvimento para implementar novos recursos do OpenVMM, em vez de um aplicativo pronto para implantação".
Especificamente, "não foi feito muito "polimento" para tornar a experiência de executar o OpenVMM em contextos de host tradicionais, particularmente "agradável". Essa falta de polimento se manifesta de várias maneiras, incluindo, mas não se limitando a:
Interfaces de Gerenciamento Desorganizadas e Minimamente Documentadas
As interfaces de gerenciamento, como a CLI, ttrpc/grpc, são desorganizadas e possuem pouca documentação.
Desempenho de Backend do Dispositivo Não Otimizado
O desempenho de backend do dispositivo, como armazenamento, rede e gráficos, não está otimizado.
Recursos do Dispositivo Ausentes Inesperadamente
Alguns recursos de dispositivo, como unidade IDE legada e recursos do mouse PS/2, estão ausentes.
Falta de Garantia de Estabilidade de API ou Conjunto de Recursos
Não há nenhuma garantia de estabilidade de API ou conjunto de recursos.
Resumindo, você pode usar o OpenVMM sem muita dor no Azure e em parceria com o OpenHCL. Para quaisquer outros usos, no entanto, você estará praticamente por conta própria.
Conclusão
Dito isso, o OpenVMM pode se tornar um player significativo no ecossistema de virtualização. Mas não se engane: estamos nos primeiros dias de tornar o OpenVMM um hipervisor geralmente útil. Para o caso de uso específico de executar cargas de trabalho de VM confidenciais e comuns, o OpenVMM exige sua atenção.