Em computação, virtualização x86 é a funcionalidade que permite que vários sistemas operacionais compartilhem recursos do processador x86 ao mesmo tempo, de maneira segura e eficiente, uma funcionalidade genericamente conhecida como virtualização de hardware. No final dos anos 1990 a virtualização x86 foi conseguida por meio de complexas técnicas de software, que superaram a falta de suporte à virtualização dos processadores e atingiram um desempenho razoável. Em meados dos anos 2000, Intel e AMD adicionaram suporte nativo à virtualização em seus processadores, tornando o software de virtualização mais simples.
Na virtualização x86 com emulação de processador e hardware x86, um "convidado" ou "Sistema Operacionalvirtual" pode funcionar como um processo no "Sistema Operacional hospedeiro", com pouca ou nenhuma modificação no sistema operacional convidado. Uma máquina virtual (VM) é um ambiente criado por um virtualizador (como os famosos: VirtualBox e o VMware Player). Clientes executam sistemas operacionais em máquinas virtuais.
O cenário a seguir ilustra o típica virtualização x86 desktop:
Um PC desktop padrão (a máquina física hospedeira) é executado a 32-bit sistema operacional Linux Ubuntu.
A compilação padrão do Microsoft Windows XP (o sistema convidado) é instalado e executado no "VMware Player para Linux" como uma máquina virtual x86.
Os usuários veem um desktop normal do Windows XP dentro da janela do aplicativo VMware Player com nenhuma instalação ou hardware dedicado para a máquina virtual.
Os usuários podem iniciar e parar a máquina virtual na vontade de usá-lo como um computador físico executando um OS com acesso a hardware, rede local e à Internet.
A máquina virtual aparece para a máquina hospedeira do sistema operacional como um aplicativo nativo que criar e gerenciar uma coleção de arquivos no disco rígido do hospedeiro e usa a memória RAM da máquina hospedeira quando está em execução. Esse aplicativo nativo, um programa Linux, neste cenário, ações de entrada e saída são exibidas na área de trabalho virtual.
A VMware introduziu o primeiro produto de virtualização de x86 em 8 de Fevereiro de 1999. O "VMware Virtual Platform", foi baseado em pesquisas anteriores de fundadores da VMware na Universidade de Stanford. VMware arquivou para uma patente sobre suas técnicas em Outubro de 1998, e recebeu Patente 6.397.242 em 28 de Maio de 2002. Software de virtualização VMware e similares para a família de processador x86 deve empregar técnicas de tradução binária para interceptar e virtualizar a execução de determinadas instruções. Estas técnicas incorrer em alguma sobrecarga de desempenho em comparação com uma VM em execução em uma arquitetura nativa virtualizadora (como o IBM System/370 ou Motorola MC68020).
Os sistemas de investigação Denali, L4 e Xen fornecem alto desempenho de virtualização de x86 através da implementação de uma máquina virtual que difere do hardware primário. Esta abordagem, conhecida como paravirtualização, envolve portar sistemas operacionais para rodar em máquina virtual resultante, que não implementar as partes do conjunto de instruções x86 reais que são difíceis de virtualizar. A partir da versão 3.0 Xen suporta a virtualização completa com um sistema operacional convidado não modificado. Isso pressupõe que o sistema hospedeiro suporta virtualização assistida por hardware (tais como Intel VT ou AMD-V).
A arquitetura do processador x86, inicialmente, não cumpriu o "Formal Requirements for Virtualizable Third Generation Architectures", uma especificação para a virtualização criado em 1974 por Gerald J. Popek e Robert P. Goldberg. Assim, os desenvolvedores acharam difícil implementar uma plataforma de máquina virtual na arquitetura x86, sem sobrecarga significativa na máquina hospedeira. Em 2005 e 2006, Intel e AMD (trabalho independente) resolveu este problema criando novas extensões "Processadoras" para a arquitetura x86. Embora a aplicação efectiva das extensões do processador diferem entre AMD e Intel, tanto alcançar o mesmo objetivo. Ambos permitem um hypervisor da máquina virtual para executar um sistema operacional modificado, sem incorrer em penalidades de desempenho significativo de emulação.
AMD mercados de virtualização extensões para arquitetura 64-bit x86 como AMD Virtualization, abreviado AMD-V. É ainda referida como "Pacifica", o processador AMD codinome interno do projeto pelo manual de usuário Xen (http://bits.xensource.com/Xen/docs/user.pdf).
Em 23 de maio de 2006, a AMD lançou o Athlon 64 ( "Orleans"), o Athlon 64 X2 ( "Windsor") e o Athlon 64 FX ( "Windsor") como o primeiro processador AMD para suportar esta tecnologia.
AMD-V também possui a capacidade Athlon 64 e Athlon 64 X2 família de processadores com "F" ou "G" no soquete AM2 (não o soquete 939), Turion 64 X2 e Opteron de 2nd geração [1] e 3rd-geração,[2]Phenom e os processadores Phenom II. Processadores Apenas Sempron exceto Sable e Huron não incluem suporte para processadores AMD-V.
Começando com a linha Barcelona, AMD Opteron CPUs virtualizadoras uma tecnologia de hardware chamado Rapid Virtualization Indexing, posteriormente adaptado pela Extended Page Tables(EPT).
Tecnologia de Virtualização da Intel para o x86 (Intel VT-x)
Anteriormente denominados "Vanderpool", VT-x representa a tecnologia de virtualização da Intel para a plataforma x86. Intel inclui Extended Page Tables (EPT), [3] uma tecnologia de virtualização page-table [4] na arquitetura Nehalem. [5][6]
A partir de 2009 nem todos os recentes processadores Intel suportam VT-x - A Intel usa o recurso para o seu segmento de mercado. [7] Para uma completa lista e actualizada consulte o site da Intel. [8] Os seguintes processadores Intel inclui suporte para VT-x: [9]
Pentium 4 662 e 672
Pentium Extreme Edition 955 e 965 (e não Pentium 4 Extreme Edition com HT)
Pentium D 920-960 exceto 945, 935, 925, 915
Core Duo T2300, T2400, T2500, T2600, T2700 (Yonah)
Celeron E3200, E3300, E3400 (que será lançado em 2010)
Nota: Se não tiver certeza se um processador Intel suporta Intel VT-x ou não, verificar o Intel Processor Spec Finder para obter informações oficiais.
Importante: Mesmo que alguns modelos parecem suportar Intel VT, nem todas as CPUs do mesmo modelo suportam. Exemplo: Intel Core 2 Duo T5500 parece suportar Intel VT [1], mas dos quatro modelos deste processador, [10] apenas um (SL9U8) suporta Intel VT.
Uma entrada/saída da unidade de gerenciamento de memória (IOMMU) permite que as máquinas virtuais hospedeiras usem diretamente os dispositivos periféricos, tais como Ethernet, placas aceleradoras gráficas e controladores de disco rígido, através da DMA e remapeamento de interrupções. Tanto a AMD e a Intel lançaram especificações:
A especificação da AMD, "AMD-Vi" (anteriormente apenas IOMMU)
"Intel Virtualization Technology for Directed I/O" (VT-d)
Pode-se executar um 64-bits em um 32-bit OS anfitrião se o processador subjacente é executado em modo de 64 bits e suporta as extensões de virtualização necessárias. Nem todas as plataformas suportam isso.
Intel VT-x característica necessária de ativação na BIOS antes dos aplicativos fazerem uso dele. A maioria dos fabricantes de computador e placa-mãe/BIOS/chipset o suporte esta desabilitado por padrão, mas basta ativar está opção.
Xen - um sistema operacional separado e independente, estruturada com o Xen hypervisor como a camada mais baixa e mais privilegiadas. Ele oferece suporte a Intel VT e AMD-V.
Parallels Server - Enterprise versão do Parallels Workstation e Desktop para Mac. Irá suportar a IOMMU Intel VT-d. Requer suporte de hardware para executar máquinas virtuais de 64 bits.
Padded Cell - tecnologia de máquina virtual da Green Hills Software hospedados na INTEGRITY em tempo real do sistema operacional. Suporta ambas as arquiteturas.
Windows Virtual PC 7 - (a partir de 2009 versão mais recente do Microsoft Virtual PC, rodando no Windows 7) e XP Mode (Windows da máquina virtual XP rodando dentro do Windows 7).
acontis technologies baseadas em x86 RTOSVisor que está disponível como Type1 e Real-Time Type2 Hypervisor, como Type2 não exigir o Intel VT ou AMD-V e também suporta os processadores single core.[19]
Wind River Hypervisor fornece virtualização em tempo real para sistemas embarcados utilizando Intel VT.
Em algumas plataformas, é possível executar um cliente de 64 bits em um 32-bit OS hospedeiro se o processador subjacente é executado no modo de 64 bits e suporta as extensões de virtualização necessária.[20]
Executando uma ou mais aplicações que não são suportados pelo sistema operacional hospedeiro
Uma máquina virtual rodando o sistema operacional convidado exigido poderia permitir que as aplicações desejadas para ser executado, sem alterar o sistema operacional hospedeiro.
Avaliação de um sistema operacional alternativo
O novo sistema operacional pode ser executado dentro de uma VM, sem alterar o sistema operacional hospedeiro.
A virtualização de servidores
Múltiplos servidores virtuais poderão ser executados em um único servidor físico, a fim de aproveitar melhor os recursos de hardware do servidor físico.
Duplicando ambientes específicos
Uma máquina virtual pode, dependendo do software de virtualização utilizado, ser repetido e instalado em várias máquinas.
Criando um ambiente protegido
Se um convidado OS rodando em uma máquina virtual torna-se infectado com malware o sistema operacional do hospedeiro, a exposição ao risco pode ser limitado, dependendo da configuração do software de virtualização.