Máquinas virtuais: QEMU, VirtualBox

1

Quando uso uma máquina virtual no meu laptop i5, ela emula todas as instruções ou é executada normalmente?

Quanto é a velocidade diminuída? Especialmente eu estou interessado em QEMU e VirtualBox ; como eles funcionam? Eles vão rodar jogos sem problemas?

    
por oneat 15.09.2012 / 12:58

2 respostas

5

Depende do seu software de virtualização. Basicamente você tem três opções:

  1. Emular um PC inteiro, incluindo CPU.
  2. Execute o software como está, usando o hardware do host, mas intercepte algumas chamadas e instruções do sistema.
  3. Modifique o software para que ele seja executado no hardware dos hosts, mas as instruções que seriam interceptadas por 2) agora serão substituídas por outras rotinas.

Todos os três trabalhos. Todos os três estão em uso. Todos os três têm diferentes características de desempenho.

1) Emular
Essa sempre será a opção mais lenta. Tem duas vantagens:

  • Você pode emular um host completamente diferente (por exemplo, emular um computador baseado em ARM em um AMD64).
  • Você não precisa de nenhum suporte de hardware.

2) Interceptar as chamadas do sistema

Esta resposta é principalmente baseada em AMD64. Uma moderna CPU x86 possui vários níveis com diferentes permissões. Estes são chamados de anéis . O software da VM assume o anel 0 (o anel com mais permissões) e ganha o direito de fazer praticamente qualquer coisa no computador. O software no computador (host e VMs) não percebe isso. Usando esses direitos, ele garante que vários sistemas operacionais não interfiram entre si.

Como resultado, o código regular é executado em velocidade máxima (o teste dnetc resultou em cerca de 99% da velocidade em um vm). Código que faz chamadas de sistema é interceptado e modificado, e é, portanto, muito mais lento. Geralmente, o resultado líquido disso é uma perda de velocidade de alguns por cento.

3) Código modificado

Em vez de interceptar as chamadas do sistema em tempo real, você pode modificar o software antecipadamente. Desta forma, o seu código pode ser um pouco mais rápido, mas você precisa modificar o software com antecedência.


Especially I am talking about QEMU and virtualbox, how are they?

Eu tenho um amigo que é programador. Ela olhou para o código do QEMU. O conselho recomendado é não tocá-lo. Sempre. Nem mesmo com um poste de 10 pés. O QEMU funciona com a configuração pronta para uso, mas falha com bastante frequência se você não usar as configurações padrão. Ele aloca recursos e nunca verifica se isso foi bem sucedido ... Eu poderia continuar, mas quanto menos for mencionado, melhor.

Virtualbox: usei o virtualbox uma vez. Funcionou. A versão do Windows tinha uma interface agradável e compreensível. Eu não testei nenhum desempenho, nem joguei nenhum jogo.

Will it run games without problems?

Os únicos jogos que tenho corrido estão sob VMware (player). Isso funcionou bem o suficiente para jogos 2D. Jogos 3D geralmente travam meu computador (tanto Vm quanto host).

    
por 15.09.2012 / 15:08
1

No VirtualBox, se você ativou os recursos estendidos e a virtualização de hardware, estará expondo os recursos nativos com suporte de seu processador / CPU ao sistema operacional convidado. O desempenho varia dependendo da quantidade de RAM e do número de núcleos de CPU alocados. Embora a alocação de uma quantidade fixa de RAM e núcleo da CPU não seja utilizada em todos os momentos, porque depende do que você está executando dentro da VM ou do sistema operacional convidado.

Digamos que aloquei 1 GB de RAM e um núcleo de CPU. Então eu corro um aplicativo intensivo no sistema operacional convidado como MATLAB , o aplicativo usará todos os recursos disponíveis Recursos. Você pode até monitorar o que os consome no Gerenciador de Tarefas .

Normalmente, jogos (alguns) devem funcionar dependendo de suas necessidades, especialmente no departamento gráfico, já que os jogos tendem a usar muita memória de vídeo, eles copiam muitos dados para que os jogos fiquem fora do tópico, se você quiser usá-los VMs.

    
por 15.09.2012 / 15:13