VirtualBox - VirtualBox

VirtualBox
Logotipo da VirtualBox desde 2010
Logotipo da VirtualBox desde 2010
VirtualBox 6.1.16 com Ubuntu 20.10 20210128 10 03 15.png
Executando Ubuntu 20.10 com Oracle VM VirtualBox no Windows 10
Autor (es) original (is) Innotek
Desenvolvedor (s) Oracle Corporation
lançamento inicial 17 de janeiro de 2007 ; 14 anos atras ( 17/01/2007 )
Versão estável
6.1.26 / 28 de julho de 2021 ; 2 meses atrás ( 2021-07-28 )
Repositório
Escrito em C , C ++ , x86 Assembly , Python
Sistema operacional Windows , macOS (apenas Macs baseados em Intel ), Linux e Solaris
Plataforma x86-64 apenas (versão da série 5.x e anteriores funcionam em IA-32 )
Modelo Hipervisor
Licença Pacote básico ( suporte USB apenas para USB 1.1 ): GNU General Public License versão 2 (opcionalmente CDDL para a maioria dos arquivos da distribuição de origem), "Extension Pack" (incluindo suporte para USB 3.0 ): PUEL
Local na rede Internet www .virtualbox .org Edite isso no Wikidata

Oracle VM VirtualBox (anteriormente Sun VirtualBox , Sun xVM VirtualBox e Innotek VirtualBox ) é um hipervisor hospedado gratuito e de código aberto para virtualização x86 , desenvolvido pela Oracle Corporation . Criado pela Innotek, foi adquirido pela Sun Microsystems em 2008, que por sua vez foi adquirida pela Oracle em 2010.

O VirtualBox pode ser instalado no Windows , macOS (até 10.15 Catalina , sem suporte oficial do macOS 11 Big Sur e versões posteriores, apesar de sua disponibilidade para Macs baseados em Intel), Linux , Solaris e OpenSolaris . Também existem portas para FreeBSD e Genode . Ele suporta a criação e gerenciamento de máquinas virtuais convidadas executando Windows, Linux, BSD , OS / 2 , Solaris, Haiku e OSx86 , bem como virtualização limitada de convidados macOS em hardware Apple. Para alguns sistemas operacionais convidados, um pacote de "Adições de convidados" de drivers de dispositivo e aplicativos de sistema está disponível, o que normalmente melhora o desempenho, especialmente o de gráficos e permite alterar a resolução do sistema operacional convidado automaticamente quando a janela da máquina virtual no host OS é redimensionado.

Licenciamento

O pacote principal é, desde a versão 4 em dezembro de 2010, software livre sob a GNU General Public License versão 2 (GPLv2). O "pacote de extensão VirtualBox Oracle VM VirtualBox" separado que fornece suporte para dispositivos USB 2.0 e 3.0, Remote Desktop Protocol (RDP), criptografia de disco, inicialização NVMe e Preboot Execution Environment (PXE) está sob uma licença proprietária , chamada de Licença de Uso e Avaliação Pessoal (PUEL) , que permite o uso do software para uso pessoal, educacional ou avaliação, gratuitamente. Desde o VirtualBox versão 5.1.30, a Oracle define o uso pessoal como a instalação do software em um único computador host para fins não comerciais. Ao contrário de alguns softwares que usam uma licença proprietária, o "pacote de extensão VirtualBox Oracle VM VirtualBox" não está disponível no código-fonte, pois inclui componentes de código-fonte fechado, o que não torna o código-fonte disponível publicamente.

Antes da versão 4, havia dois pacotes diferentes do software VirtualBox. O pacote completo foi oferecido gratuitamente sob o PUEL, com licenças para outras implementações comerciais adquiridas da Oracle. Um segundo pacote chamado VirtualBox Open Source Edition (OSE) foi lançado sob a GPLv2. Isso removeu os mesmos componentes proprietários não disponíveis na GPLv2.

Construir o BIOS para VirtualBox desde a versão 4.2 requer o uso do compilador Open Watcom , para o qual a Licença Pública Sybase Open Watcom foi aprovada como "Open Source" pela Open Source Initiative, mas não como "livre" pela Free Software Foundation ou sob as Diretrizes de Software Livre Debian .

Embora o VirtualBox tenha suporte experimental para convidados do macOS, o contrato de licença do usuário final do macOS não permite que o sistema operacional seja executado em hardware que não seja da Apple, e isso é imposto dentro do sistema operacional por chamadas para o Apple System Management Controller (SMC) em todas as máquinas Apple, o que verifica a autenticidade do hardware.

Ambiente emulado

Executando Ubuntu Live CD em VirtualBox no Ubuntu

Os usuários do VirtualBox podem carregar vários SOs convidados em um único sistema operacional host (SO host). Cada convidado pode ser iniciado, pausado e interrompido independentemente em sua própria máquina virtual (VM). O usuário pode configurar independentemente cada VM e executá-la em uma escolha de virtualização baseada em software ou virtualização assistida por hardware se o hardware host subjacente suportar isso. O sistema operacional host e os sistemas operacionais convidados e os aplicativos podem se comunicar uns com os outros por meio de vários mecanismos, incluindo uma área de transferência comum e uma instalação de rede virtualizada. As VMs convidadas também podem se comunicar diretamente umas com as outras, se configuradas para isso.

Virtualização baseada em software

O recurso foi eliminado a partir do VirtualBox 6.1.

Versão 6.0 e anterior

Na ausência de virtualização assistida por hardware, o VirtualBox adota uma abordagem de virtualização baseada em software padrão . Este modo oferece suporte a sistemas operacionais convidados de 32 bits que são executados nos anéis 0 e 3 da arquitetura em anel Intel .

  • O sistema reconfigura o código do sistema operacional convidado, que normalmente seria executado no anel 0, para executar no anel 1 no hardware host. Como este código contém muitas instruções privilegiadas que não podem ser executadas nativamente no anel 1, o VirtualBox emprega um Gerenciador de Análise e Varredura de Código (CSAM) para fazer a varredura do código do anel 0 recursivamente antes de sua primeira execução para identificar instruções problemáticas e, em seguida, chama o Patch Manager (PATM) para realizar patching in-situ . Isso substitui a instrução por um salto para um fragmento de código compilado equivalente seguro para VM na memória do hipervisor.
  • O código do modo de usuário convidado, em execução no anel 3, geralmente é executado diretamente no hardware host no anel 3.

Em ambos os casos, o VirtualBox usa CSAM e PATM para inspecionar e corrigir as instruções incorretas sempre que ocorrer uma falha. O VirtualBox também contém um recompilador dinâmico , baseado em QEMU para recompilar qualquer modo real ou código de modo protegido inteiramente (por exemplo, código BIOS, um convidado DOS ou qualquer inicialização de sistema operacional).

Usando essas técnicas, o VirtualBox pode atingir um desempenho comparável ao do VMware .

Virtualização assistida por hardware

VirtualBox suporta tanto Intel 's VT-x e AMD ' s AMD-V virtualização assistida por hardware. Fazendo uso desses recursos, o VirtualBox pode executar cada VM guest em seu próprio espaço de endereço separado; o código do anel 0 do sistema operacional convidado é executado no host no anel 0 no modo VMX não raiz em vez de no anel 1.

A partir da versão 6.1, o VirtualBox só oferece suporte a este método. Até então, o VirtualBox suportava especificamente alguns convidados (incluindo convidados de 64 bits, convidados SMP e certos sistemas operacionais proprietários) apenas em hosts com virtualização assistida por hardware .

Virtualização de dispositivo

O VirtualBox emula discos rígidos em três formatos: o VDI nativo (Virtual Disk Image), o VMDK do VMware e o VHD do Microsoft Windows . Portanto, ele oferece suporte a discos criados por outro software hipervisor. O VirtualBox também pode se conectar a destinos iSCSI e a partições brutas no host, usando como discos rígidos virtuais. O VirtualBox emula IDE (controladores PIIX4 e ICH6), SCSI , SATA (controlador ICH8M) e controladores SAS aos quais os discos rígidos podem ser conectados.

O VirtualBox é compatível com Open Virtualization Format (OVF) desde a versão 2.2.0 (abril de 2009).

Tanto as imagens ISO quanto os dispositivos físicos conectados ao host podem ser montados como unidades de CD ou DVD. O VirtualBox suporta a execução de sistemas operacionais de CDs e DVDs ao vivo .

Por padrão, o VirtualBox fornece suporte gráfico por meio de uma placa gráfica virtual personalizada que é compatível com VESA . As adições de convidados para convidados Windows, Linux, Solaris, OpenSolaris ou OS / 2 incluem um driver de vídeo especial que aumenta o desempenho do vídeo e inclui recursos adicionais, como o ajuste automático da resolução do convidado ao redimensionar a janela VM ou composição da área de trabalho via WDDM virtualizado motoristas.

Para um adaptador de rede Ethernet , o VirtualBox virtualiza estas placas de interface de rede :

  • AMD PCnet PCI II (Am79C970A)
  • AMD PCnet-Fast III (Am79C973)
  • Desktop Intel Pro / 1000 MT (82540EM)
  • Servidor Intel Pro / 1000 MT (82545EM)
  • Servidor Intel Pro / 1000 T (82543GC)
  • Adaptador de rede paravirtualizado (virtio-net)

As placas de rede emuladas permitem que a maioria dos sistemas operacionais convidados sejam executados sem a necessidade de localizar e instalar drivers para o hardware de rede, visto que são enviados como parte do sistema operacional convidado. Um adaptador de rede paravirtualizado especial também está disponível, o que melhora o desempenho da rede, eliminando a necessidade de combinar uma interface de hardware específica, mas requer suporte de driver especial no convidado. (Muitas distribuições do Linux vêm com este driver incluído.) Por padrão, o VirtualBox usa NAT, através do qual o software da Internet para usuários finais como Firefox ou ssh pode operar. A rede em ponte por meio de um adaptador de rede host ou redes virtuais entre convidados também pode ser configurada. Até 36 adaptadores de rede podem ser conectados simultaneamente, mas apenas quatro são configuráveis ​​por meio da interface gráfica.

Para uma placa de som, o VirtualBox virtualiza os dispositivos Intel HD Audio, Intel ICH AC'97 e SoundBlaster 16 .

Um controlador USB 1.1 é emulado para que qualquer dispositivo USB conectado ao host possa ser visto no convidado. O pacote de extensão proprietário adiciona controladores USB 2.0 ou USB 3.0 e, se o VirtualBox atuar como um servidor RDP, também pode usar dispositivos USB no cliente RDP remoto como se estivessem conectados ao host, embora apenas se o cliente suportar este VirtualBox -extensão específica (a Oracle fornece clientes para clientes thin Solaris, Linux e Sun Ray que podem fazer isso e prometeram suporte para outras plataformas em versões futuras).

Conjunto de características

  • Instantâneos
  • Modo contínuo - a capacidade de executar aplicativos virtualizados lado a lado com aplicativos de desktop normais
  • Área de transferência compartilhada
  • Pastas partilhadas
  • Drivers e utilitários especiais para facilitar a alternância entre sistemas
  • Interação de linha de comando (além da GUI)
  • API pública ( Java , Python , SOAP , XPCOM ) para controlar a configuração e execução da VM
  • Paginação aninhada para AMD-V e Intel VT (apenas para processadores que suportam SLAT e com SLAT habilitado)
  • Suporte limitado para aceleração de gráficos 3D (incluindo OpenGL até (mas não incluindo) 3.0 e Direct3D 9.0c por meio do Direct3D do Wine para tradução de OpenGL)
  • Suporte SMP (até 32 CPUs virtuais por máquina virtual), desde a versão 3.0
  • Teletransporte (também conhecido como Live Migration )
  • Aceleração de saída de vídeo 2D (não deve ser confundida com aceleração de decodificação de vídeo), desde a versão 3.1
  • EFI é compatível desde a versão 3.1 (convidados do Windows 7 não são compatíveis)
Recursos de emulação de armazenamento
Suporte de armazenamento
  • Acesso ao disco rígido bruto - permite que partições físicas do disco rígido no sistema host apareçam no sistema convidado
  • Suporte ao formato VMware Virtual Machine Disk ( VMDK ) - permite a troca de imagens de disco com VMware
  • Suporte Microsoft VHD
  • Discos QEMU qed e qcow
  • Discos de formato HDD (apenas a versão 2; as versões 3 e 4 não são suportadas) usados ​​por produtos de virtualização Parallels
Desde a versão 3.2
  • Suporte a convidado do Mac OS X Server - experimental
  • Ballooning de memória (não disponível em hosts Solaris)
  • Desduplicação de RAM (Page Fusion) para convidados do Windows em hosts de 64 bits
  • CPU hot-plugging para Linux (hot-add e hot-remove) e certos convidados do Windows (hot-add apenas)
  • Excluir instantâneos enquanto a VM está em execução
  • Configurações de convidados de vários monitores na GUI , para convidados do Windows
  • Emulação de controlador LSI Logic SAS
  • Aceleração de vídeo do Remote Desktop Protocol (RDP) por meio de uma extensão gratuita
  • Execute e controle aplicativos convidados a partir do host - para implantações de software automatizadas
Desde a versão 4.0
  • A separação PUEL / OSE foi abandonada em favor de um produto base de código aberto e um pacote de extensão de código fechado que pode ser instalado sobre o produto base. Como parte dessa mudança, componentes adicionais do VirtualBox foram feitos de código aberto (instaladores, documentação, drivers de dispositivo)
  • Emulação de codec de áudio Intel HD
  • Emulação do chipset Intel ICH9
  • Um novo esquema de armazenamento de VM em que todos os dados de VM são armazenados em uma única pasta para melhorar a portabilidade da VM
  • Vários aprimoramentos de IU, incluindo um novo visual com visualização de VM e modo de escala
  • Em hosts de 32 bits, as VMs podem usar cada uma mais de 1,5 GB de RAM
  • Além do OVF , o formato OVA de arquivo único é compatível
  • O uso da CPU e a largura de banda de E / S podem ser limitados por VM
  • Suporte para imagens Apple DMG (DVD)
  • Configurações de convidados de vários monitores para convidados Linux / Solaris (anteriormente apenas Windows)
  • Redimensionar formatos de imagem de disco de Oracle, VDI (imagem de disco VirtualBox) e Microsoft, VHD (disco rígido de PC virtual)
Desde a versão 4.1
  • Suporte para Windows Aero (experimental)
  • Clonagem de máquina virtual
Desde a versão 4.2
  • Grupos de máquinas virtuais - permite o gerenciamento de um grupo de máquinas virtuais como uma única unidade (ligue ou desligue, tire instantâneos, etc.)
  • Algumas configurações de VM podem ser alteradas durante a execução da VM
  • Suporta até 36 NICs no caso do chipset ICH9
  • Suporte para limitar a largura de banda de E / S da rede
  • Pode executar VMs automaticamente na inicialização do sistema host (exceto em hosts Windows)
Desde a versão 4.3
  • Suporte para captura de vídeo VM
  • Suporte a dispositivos de toque do host (a GUI passa os eventos de toque do host para o convidado) / virtualização USB de tais dispositivos
Desde a versão 5.0
  • Suporte para paravirtualização para convidados Windows e Linux para melhorar a precisão e o desempenho do controle de tempo
  • Controlador USB3 baseado na implementação de hardware da Intel. É compatível com qualquer versão do Windows a partir do Windows 8 , qualquer kernel do Linux a partir do 2.6.31 e Mac OS X a partir da versão 10.7.4.
  • Suporte bidirecional de arrastar e soltar para convidados Windows, Linux e Solaris
  • Criptografia de imagem de disco VM por meio de uma extensão gratuita
  • Escala de saída de VM e suporte a monitores HiDPI
  • Hotplugging de discos SATA usando GUI
  • Captura de tráfego USB
  • As VMs podem ser desconectadas de uma sessão de GUI e executadas em segundo plano
  • Instruções AVX , AVX-2, AES-NI , SSE 4.1 / 4.2 (se compatível com a CPU host)
Desde a versão 6.0
  • Suporte para exportação de máquinas virtuais para Oracle Cloud
  • Um gerenciador de arquivos que permite controlar o sistema de arquivos do convidado e copiar arquivos de / para ele
  • Driver de GPU VMSVGA para hosts Linux
  • Suporte para configuração de alto-falantes surround
  • Suporte para virtualização aninhada assistida por hardware em CPUs AMD
Desde a versão 6.1
  • Suporte para importação de máquinas virtuais do Oracle Cloud
  • Adicionado suporte de virtualização aninhada para CPUs Intel (já estava disponível para CPUs AMD) começando com Intel Core i5 Broadwell
  • Suporte experimental para transferência de arquivos via arrastar e soltar apenas para hosts e convidados do Windows (desabilitado por padrão, deve ser habilitado usando VBoxManage)
  • Suporte para virtio-scsi para discos rígidos e unidades ópticas, incluindo suporte de inicialização
  • Suporte para hosts com até 1024 CPUs
  • Suporte DXVA (decodificação de vídeo acelerada por hardware) para convidados Windows
  • Suporte NVRAM para EFI, que melhora a compatibilidade com muitos sistemas operacionais convidados
  • Teclado de software para inserir qualquer tecla para um convidado
  • Monitoramento de uso de CPU convidado
  • Suspensão do suporte para virtualização de CPU de software - agora é necessária uma CPU com suporte de virtualização de hardware
  • Suspensão do suporte para passagem de PCI para hosts Linux

Limitações

  • A aceleração de gráficos 3D para convidados do Windows anteriores ao Windows 7 foi removida na versão 6.1. Isso afetou o Windows XP e o Windows Vista.
  • O VirtualBox tem uma taxa de transferência muito baixa de e para dispositivos USB2 .
  • Apesar de ser um produto de código aberto, alguns de seus recursos estão disponíveis apenas na forma binária sob uma licença comercial (consulte "Pacote de extensão do VirtualBox" abaixo).
  • USB3 dispositivos atravessar não é suportado por sistemas operacionais hóspedes mais antigos, como o Windows Vista e Windows XP devido à falta de drivers no entanto começando com a versão 5.0 do VirtualBox ofertas experimental Renesas uPD720201 xHCI controlador USB3, que permite usar USB3 nestes sistemas operacionais através de modificação manual de configuração arquivos.
  • As adições de convidados para macOS não estão disponíveis no momento.
  • As adições de convidados para Windows 9x ( Windows 95 , 98 e ME ) não estão disponíveis. Isso resulta em baixo desempenho devido à falta de aceleração gráfica com o modo de cor padrão de 16 bits ( software externo de terceiros está disponível para ativar o suporte para o modo de cor de 32 bits, resultando em melhor desempenho).
  • O suporte EFI está incompleto, por exemplo, a inicialização EFI para um convidado do Windows 7 não é compatível. A inicialização segura UEFI para sistemas operacionais convidados está ausente.
  • Apenas versões mais antigas do DirectX e passagem OpenGL são suportadas (o recurso pode ser habilitado usando a opção 3D Acceleration para cada VM individualmente).
  • A RAM de vídeo é limitada a 128 MiB (256 MiB com aceleração de vídeo 2D habilitada) devido a dificuldades técnicas (apenas alterar a GUI para permitir que o usuário aloque mais RAM de vídeo para uma VM ou editar manualmente o arquivo de configuração de uma VM não funcionará e resultará em um erro fatal ).
  • O Windows 95/98 / 98SE / ME não pode ser instalado ou não funciona de maneira confiável com CPUs modernas (AMD Zen ou mais recente) e virtualização assistida por hardware (VirtualBox 6.1 e superior). Isso ocorre porque esses sistemas operacionais não estão sendo codificados corretamente.

Pacote de extensão VirtualBox

Alguns recursos requerem a instalação do "VirtualBox Extension Pack" de código fechado :

  • Suporte para um controlador virtual USB 2.0 / 3.0 (EHCI / xHCI)
  • VirtualBox RDP : suporte para o protocolo de conexão remota proprietário desenvolvido pela Microsoft e Citrix Systems .
  • Inicialização PXE para placas Intel.
  • Criptografia de imagem de disco VM
  • Suporte para câmera / webcam

Embora o VirtualBox em si seja gratuito e distribuído sob uma licença de código aberto, o VirtualBox Extension Pack é licenciado sob a Licença de uso e avaliação pessoal do VirtualBox (PUEL). O uso pessoal é gratuito, mas os usuários comerciais precisam adquirir uma licença. A Oracle verifica rotineiramente os arquivos de log em busca de downloads do VirtualBox Extension Pack de endereços IP não residenciais e entra em contato com usuários não licenciados para garantir a conformidade.

Enquanto as Adições de Convidado são instaladas em cada máquina virtual de convidado adequada, o Pacote de Extensão é instalado no host que executa o VirtualBox.

Suporte a sistema operacional host

Os sistemas operacionais suportados incluem:

História

Logotipo do VirtualBox OSE, 2007–2010

O VirtualBox foi oferecido pela Innotek GmbH de Weinstadt , Alemanha , sob uma licença de software proprietário , disponibilizando uma versão do produto sem custo para uso pessoal ou de avaliação, sujeito à Licença de Uso e Avaliação Pessoal do VirtualBox (PUEL). Em janeiro de 2007, com base no conselho da LiSoG , a Innotek GmbH lançou o VirtualBox Open Source Edition (OSE) como um software de código aberto e gratuito , sujeito aos requisitos da GNU General Public License (GPL), versão 2.

A Innotek GmbH também contribuiu para o desenvolvimento de suporte OS / 2 e Linux em virtualização e portas OS / 2 de produtos da Connectix que foram posteriormente adquiridos pela Microsoft . Especificamente, a Innotek desenvolveu o código de "adições" no Windows Virtual PC e no Microsoft Virtual Server , que permite várias interações de sistema operacional host-convidado, como pranchetas compartilhadas ou redimensionamento dinâmico de viewport.

A Sun Microsystems adquiriu a Innotek em fevereiro de 2008.

A Oracle Corporation adquiriu a Sun em janeiro de 2010 e rebatizou o produto como "Oracle VM VirtualBox".

Em dezembro de 2019, o VirtualBox começou a oferecer suporte apenas à virtualização assistida por hardware , deixando de oferecer suporte para a virtualização baseada em software .

Veja também

Notas

Referências

links externos

  • Site oficial (inclui documentação em formatos HTML e PDF)