A equipe do NetBSD está desenvolvendo um novo hipervisor NVMM

Os Desenvolvedores de projetos NetBSD recentemente anunciou a criação de um novo hipervisor e sua pilha de virtualização associada, que já estão incluídos no ramo experimental do NetBSD-current e será oferecido na versão estável do NetBSD 9.

NVMM ainda é limitado ao suporte para arquitetura x86_64 e oferece duas versões para o uso de mecanismos de virtualização de hardware.

Um deles é o x86-SVM com suporte para virtualização de CPU AMD e extensões x86-VMX para CPUs Intel.

Em sua forma atual, até 128 máquinas virtuais podem ser inicializadas em um host, cada um dos quais pode ser alocado para até 256 núcleos de processador virtual (VCPUs) e 128 GB de RAM.

Sobre o hipervisor NVMM

Na apresentação deste hipervisor, os desenvolvedores do projeto NetBSD explicam que NVMM inclui um driver que funciona no nível do kernel do sistema.

E isso também coordena o acesso a mecanismos de virtualização baseados em hardware e a pilha Libnvmm, que é executado no espaço do usuário.

A interação dos componentes do kernel e do espaço do usuário é feita por meio do IOCTL.

 Um recurso do NVMM que o distingue de hipervisores como KVM, HAXM e Bhyve é que, no nível do kernel, apenas o conjunto mínimo necessário de mecanismos de virtualização de hardware é executado e todo o código de emulação do computador é removido do kernel no momento. Espaço do usuário .

Esta abordagem reduz a quantidade de código executado com privilégios elevados e reduz o risco que todo o sistema seja comprometido em caso de ataques a vulnerabilidades no hipervisor.

Além disso, a depuração do projeto e o teste de confusão são bastante simplificados.

Ao mesmo tempo, o próprio Libnvmm não contém funções de emulador, mas apenas fornece uma API que permite integrar o suporte a NVMM em emuladores existentes, por exemplo em QEMU.

API de virtualização

A API cobre funções como criar e executar uma máquina virtual, alocar memória para o sistema convidado e distribuir a VCPU.

Para aumentar a segurança e reduzir possíveis vetores de ataque, libnvmm fornece apenas funções explicitamente solicitadas.

Por padrão, os controladores complexos não são chamados automaticamente e não podem ser usados ​​se puderem ser dispensados.

NVMM tenta fazer soluções simples, sem cair em complicações e permitindo-se controlar o máximo possível de aspectos do trabalho.

A parte do nível do kernel do NVMM está muito bem integrada com o kernel do NetBSD e permite que você obtenha um desempenho superior reduzindo o número de alternâncias de contexto entre o sistema operacional convidado e o ambiente host.

No espaço do usuário, libnvmm tenta adicionar as operações de I / O típicas e sem a necessidade de fazê-lo, não recorrendo a chamadas de sistema.

Atuação

Ao contrário de outros drivers de pseudo-kernel de plataforma cruzada, como VirtualBox ou HAXM, O NVMM está bem integrado ao kernel do NetBSD e isto permite otimizar as mudanças contexto entre os convidados e o anfitrião, para evitar operações onerosas em certos casos.

Segurança

O sistema de alocação de memória é baseado no subsistema pmap, que permite-lhe mover as páginas da memória do convidado para a partição de troca em caso de falta de memória no sistema.

NVMM é livre de travas e escalas globais, permitindo que você use simultaneamente diferentes núcleos de CPU para executar diferentes máquinas virtuais convidadas.

Com base no QEMU, uma solução foi preparada usando NVMM para habilitar mecanismos de virtualização de hardware.

O trabalho está em andamento para incorporar os patches preparados no equipamento principal do QEMU.

O pacote QEMU + NVMM já permite que você execute com sucesso sistemas convidados com FreeBSD, OpenBSD, Linux, Windows XP / 7 / 8.1 / 10 e outros sistemas operacionais em sistemas x86_64 com processadores AMD e Intel (NVMM em si não está vinculado a uma arquitetura específica).

O back-end será capaz de funcionar em sistemas ARM64). Nas áreas de aplicação adicionais, o NVMM também analisou o isolamento na área de teste de aplicação individual.

fonte: http://blog.netbsd.org


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.