Virtualização completa - Full virtualization

Image
Captura de tela de um ambiente de virtualização

Na ciência da computação , a virtualização é uma técnica moderna desenvolvida no final dos anos 1990 e é diferente da simulação e emulação . A virtualização emprega técnicas usadas para criar instâncias de um ambiente, em oposição à simulação, que modela o ambiente; ou emulação, que replica o ambiente de destino, como certos tipos de ambientes de máquina virtual . A virtualização completa requer que cada recurso saliente do hardware seja refletido em uma das várias máquinas virtuais - incluindo o conjunto completo de instruções, operações de entrada / saída , interrupções, acesso à memória e quaisquer outros elementos usados ​​pelo software executado na máquina vazia , e que deve ser executado em uma máquina virtual. Em tal ambiente, qualquer software capaz de ser executado no hardware bruto pode ser executado na máquina virtual e, em particular, em qualquer sistema operacional. O teste óbvio da virtualização total é se um sistema operacional destinado ao uso autônomo pode ser executado com êxito dentro de uma máquina virtual.

A pedra angular da virtualização completa ou virtualização tipo 1 é um hipervisor ou super sistema operacional que opera em um nível de privilégio mais alto do que o sistema operacional. Este hipervisor ou Super OS requer dois recursos principais para provisionar e proteger ambientes virtualizados. Esses dois recursos são:

  1. Gerenciamento de armazenamento independente do sistema operacional para provisionar recursos para todos os ambientes virtuais com suporte, como Linux, Microsoft Windows ou ambientes incorporados e para proteger esses ambientes de acesso não autorizado e,
  2. Troca de ambientes virtualizados para alocar recursos físicos de computação para ambientes virtuais.

Consulte Intel VT-x ou AMD-V para obter uma descrição detalhada dos níveis de privilégio para hipervisor, modos de sistema operacional e usuário, VMCS, VM-Exit e VM-Entry. Esta virtualização não deve ser confundida com as implementações de Máquina Virtual IBM do final dos anos 60 e início dos anos 70, pois a arquitetura de sistemas IBM suportava apenas dois modos de Supervisor e Programa que não forneciam segurança ou separação de Máquinas Virtuais.

Outras formas de virtualização de plataforma permitem que apenas determinados softwares ou softwares modificados sejam executados em uma máquina virtual. O conceito de virtualização total está bem estabelecido na literatura, mas nem sempre é referido por este termo específico; veja virtualização de plataforma para terminologia.

Um exemplo importante de Máquinas Virtuais, que não se deve confundir com a Virtualização implementada por emulação, foi aquela fornecida pelo programa de controle do sistema operacional CP / CMS da IBM . Foi demonstrado pela primeira vez com o sistema de pesquisa CP-40 da IBM em 1967, depois distribuído via código aberto no CP / CMS em 1967–1972 e reimplementado na família VM da IBM de 1972 até o presente. Cada usuário CP / CMS recebeu um computador autônomo simulado. Cada uma dessas máquinas virtuais tinha os recursos completos da máquina subjacente e (para seu usuário) a máquina virtual era indistinguível de um sistema privado. Esta simulação foi abrangente e foi baseada no manual de Princípios de Operação do hardware. Assim, incluiu elementos como um conjunto de instruções, memória principal, interrupções, exceções e acesso a dispositivos. O resultado foi uma única máquina que poderia ser multiplexada entre vários usuários.

A virtualização total só é possível com a combinação certa de elementos de hardware e software . Por exemplo, isso não era possível com a maioria das séries System / 360 da IBM, com exceção do IBM System / 360-67 ; nem era possível com o sistema System / 370 anterior da IBM . A IBM adicionou hardware de memória virtual à série System / 370 em 1972, que não é o mesmo que Intel VT-x Rings, fornecendo um nível de privilégio mais alto para o hipervisor controlar adequadamente as máquinas virtuais que requerem acesso total aos modos Supervisor e Programa ou Usuário.

Da mesma forma, a virtualização completa não era possível com a plataforma x86 até a adição de 2005–2006 das extensões AMD-V e Intel VT-x (consulte virtualização x86 ). Muitos hipervisores de plataforma para a plataforma x86 chegaram muito perto e reivindicaram a virtualização total, mesmo antes das adições de AMD-V e Intel VT-x. Os exemplos incluem Adeos , Mac-on-Linux, Parallels Desktop para Mac , Parallels Workstation , VMware Workstation , VMware Server (anteriormente GSX Server), VirtualBox , Win4BSD e Win4Lin Pro . A VMware, por exemplo, emprega uma técnica chamada tradução binária para modificar automaticamente o software x86 em tempo real para substituir as instruções que "perfuram a máquina virtual" por uma sequência de instruções diferente e segura para a máquina virtual; esta técnica fornece a aparência de virtualização completa.

Um desafio importante para a virtualização completa é a interceptação e simulação de operações privilegiadas, como instruções de E / S. Os efeitos de cada operação executada em uma determinada máquina virtual devem ser mantidos dentro dessa máquina virtual - as operações virtuais não podem alterar o estado de qualquer outra máquina virtual, o programa de controle ou o hardware. Algumas instruções de máquina podem ser executadas diretamente pelo hardware, já que seus efeitos estão inteiramente contidos nos elementos gerenciados pelo programa de controle, como posições de memória e registros aritméticos. Mas outras instruções que iriam "perfurar a máquina virtual" não podem ser executadas diretamente; em vez disso, eles devem ser capturados e simulados. Essas instruções acessam ou afetam as informações de estado que estão fora da máquina virtual.

A virtualização completa provou ser altamente bem-sucedida para:

  • compartilhar um sistema de computador entre vários usuários;
  • isolar os usuários uns dos outros (e do programa de controle);
  • emulando novo hardware para obter maior confiabilidade, segurança e produtividade.

Veja também

Referências

Veja fontes específicas listadas em virtualização de plataforma e (para fontes históricas) CP / CMS .

links externos