O Windows 7 Inside Linux é tão bom quanto o SO principal (principalmente para gráficos e vídeo)?


10

Novo usuário do Linux. Gostaria de saber se a execução do Windows 7 no Ubuntu / Linux Mint via VMPlayer será igual à execução do Windows 7 como o sistema operacional principal.

Por "mesmo", quero dizer particularmente:

  • A qualidade de renderização gráfica e de vídeo será tão boa?

  • Haverá algum problema de hardware, como o uso de HDMI ou WiDi?

  • Os aplicativos serão executados da mesma maneira, contanto que RAM suficiente seja alocada?

Qual é a potência da máquina para que não haja diferença perceptível? As especificações particulares da minha máquina são: http://www.gadgetspecs.info/2011/07/asus-u46e-bal5-review-of-specs-and.html . Eu também tenho um SSD instalado.

Antecedentes: Atualmente, tenho o oposto configurado com Linux Mint e Ubuntu no Windows 7 e estou descobrindo que a qualidade do vídeo não é tão boa quanto a do Windows 7.

Respostas:


11

Anexei bastante à minha resposta abaixo, mas mantive a resposta original intacta para referência.

TL: DR: Máquinas Virtuais são uma ferramenta e, embora ofereçam a capacidade fácil de usar um sistema operacional dentro de outro, você deve estar muito ciente de qual será o uso primário pretendido do computador para fazer pleno uso do sistema .

Sua pergunta parece ser fortemente inclinada para as possibilidades gráficas e de desempenho da interface do uso de uma máquina virtual; portanto, responderei sobre as possibilidades existentes.

O principal problema é que, para gerenciar com segurança o acesso dos sistemas operacionais convidados aos dispositivos (e, assim, impedir que o SO convidado atropele o host e quebre coisas), todos os dispositivos que você deseja usar devem ser "emulados".

O que isso significa é que a placa gráfica que o SO convidado pode ver não é a mesma que o SO host pode ver. Você pode habilitar recursos como a renderização 3D no convidado, mas isso é tratado por um driver intermediário no seu convidado que passa as solicitações até o host de uma maneira segura para que o 3D seja renderizado lá.

É muito duvidoso que recursos como os necessários para reproduzir discos blue-ray com segurança em um monitor HDMI suportado sejam emulados pelos drivers da placa gráfica de convidado e, portanto, isso provavelmente não funcione.

Basicamente, qualquer coisa que exija suporte de hardware no seu host provavelmente não funcionará bem, se houver, no seu convidado. Não sei como o WiDi funciona, mas se precisar de acesso direto à memória da placa de vídeo para compartilhá-lo na televisão, ele não funcionará, a menos que você o use no sistema operacional host (Linux).

Fora isso em termos de desempenho, uma VM pode se aproximar do que seria se fosse o sistema operacional principal, mas sempre haverá penalidades em termos de acesso ao dispositivo de disco rígido ou contenção com outros recursos que o host está usando.

No início...

No começo, tínhamos um computador, esse computador só podia executar um sistema operacional. Esse sistema operacional tendia apenas a funcionar bem no processador específico e em outro hardware que estava na máquina, com outros sistemas operacionais capazes de executar apenas mal, se é que existe, no hardware nativo disponível.

Para que as pessoas possam usar o software para uma plataforma específica em outra plataforma (por exemplo, usar o software MacOS Pre-OSX em um Commodore Amiga), é necessário mais do que apenas "instalar o software". Essas duas máquinas usavam arquiteturas de processador completamente diferentes e hardware auxiliar. Simplesmente não havia como um sistema operacional rodar no hardware de outra máquina.

Emulação

A emulação é como um primo da virtualização, eles estão realmente relacionados e têm objetivos semelhantes. Um gerou o outro por assim dizer.

O que essas plataformas de hardware diferentes significavam era que, se você queria usar um software de outro sistema operacional em sua máquina, tudo sobre essa máquina tinha que ser analisado para descobrir como funcionava e, em seguida, um código escrito que funcionava no da mesma forma que a parte do hardware. Isso tinha que ser feito para cada peça, o processador, o controlador gráfico, o controlador de memória, tudo .

Então todas essas peças são reunidas e, à medida que cada peça emula um pouco de hardware, chamamos isso de máquina emulada . Em seguida, executamos um sistema operacional em cima dessa máquina emulada.

O problema é que essa abordagem é lenta. Simplesmente, você teve sorte se conseguir atingir 1/10 da velocidade do hardware original. Você literalmente precisava de uma máquina várias vezes mais rápido que a máquina emulada de destino para executar o computador emulado a qualquer lugar próximo da velocidade máxima.

Então o que mudou?

Bem, aqui está a coisa legal. Na verdade, não muito. A única grande mudança foi a padronização das plataformas de hardware. Paramos de obter hardware personalizado para todos os sistemas operacionais e todos os sistemas operacionais foram movidos ou criados em uma única plataforma padrão.

Os componentes que compõem um Mac atualmente são, em geral, os mesmos componentes que compõem um PC. O Linux sempre rodava no hardware do PC, então nada de novo por lá.

Por um bom tempo, a emulação ainda era a norma, se você quisesse executar o software de um sistema operacional em outro. Ou você pode inicializar duas vezes e executar o sistema operacional conforme desejado, mas isso torna doloroso e irritante se você quiser passar da codificação no Linux para jogar no Windows.

E depois..

Surgiu a ideia de que, como o hardware subjacente é o mesmo, por que os dois sistemas operacionais não podem compartilhá-lo?

Acabamos com QEMU e WiNE e soluções de software similares. O QEMU era um dos favoritos para a emulação rígida de máquinas, enquanto o WiNE permitia que os aplicativos Windows rodassem no Linux interceptando e corrigindo suas chamadas à API do SO e permitindo que o código fosse executado nativamente no processador.

O QEMU fez algo semelhante ao WiNE, mas fez em um nível muito mais baixo. Ainda é efetivamente um emulador, mas para cada chamada de hardware feita, eles usam um método de "correção e redirecionamento" para que todas as chamadas sejam direcionadas para sua própria plataforma de hardware emulada. porque a maioria dos códigos de trabalho em um programa não envolvia realmente chamadas de hardware (a maioria é simples fluxos de cálculos com uma chamada no final para exibir resultados).

Isso resultou em um aumento instantâneo de velocidade para quase todos os programas na máquina agora não-emulada . Os programas rodavam com lentidões, dependendo mais de quanto eles acessavam o hardware "virtual", e não de quão bem a máquina poderia ser emulada. Em vez de rodar em 1/10 da velocidade, eles estavam rodando quase na mesma velocidade como se estivessem nativamente.

Então, se estamos rodando no processador agora, por que minha placa gráfica não funciona?

O único problema com essas novas máquinas virtuais é que, por sua própria natureza, um sistema operacional pressupõe que ele tenha controle direto de todo o hardware existente no computador, para que eles possam fornecer recursos como gerenciamento de memória e controlar o acesso ao hardware.

O que isso significa, porém, é que as Máquinas Virtuais não conseguem se livrar completamente da emulação, pelo menos no método. Eles ainda precisam emular determinadas funções no software, por exemplo, uma placa de vídeo ou placa de rede deve ser apresentada ao sistema operacional em execução na máquina virtual para que o sistema operacional "Convidado" pense que tem controle total desse hardware. O sistema operacional principal (por requisitos de segurança) deve se proteger contra programas que acessam diretamente o hardware e isso impõe restrições ao sistema operacional convidado.

Para fazer isso, eles precisam emular peças de hardware "virtuais" para tudo no computador. Todo o código é executado nativamente pelo processador agora, portanto, não é lento, mas cada uma dessas peças de hardware virtual deve ser escrita em software, e isso gera uma pequena penalidade no desempenho e potencialmente uma grande penalidade em termos de funcionalidade .

O que isso significa é que sua placa de vídeo virtual não pode e não terá os mesmos recursos que sua placa de vídeo real . Para obter o máximo desempenho, o hardware virtual pode ser gravado para suportar os recursos mais usados, e a renderização 3D agora é possível em uma máquina virtual, mas ainda não é a mesma coisa que o hardware real.

O que isso significa é que o sistema operacional host obtém as melhores opções de hardware, enquanto o sistema operacional convidado obtém opções genéricas de hardware.

Uma máquina virtual não é tão boa quanto o hardware real; é apenas uma ferramenta para facilitar o trabalho com as ferramentas de um sistema em outro.

Então o que eu faço?

Você precisa escolher qual o objetivo principal do seu computador.

Se você deseja jogar os jogos mais recentes em sua placa de vídeo de alta potência e usar a mesma potência de placas gráficas para reproduzir filmes em 1080p completos na sua TV HDMI de 400 ", mas ocasionalmente deseja fazer alguma programação em Linux, o Windows pode ser sua melhor aposta com o Linux como convidado.

Se você deseja trabalhar no kernel Linux, criar drivers de hardware para dispositivos no seu computador e, ocasionalmente, escrever algum software para Windows e testá-lo em uma boa aproximação de um sistema Windows "padrão", pode ser que você seja o melhor em Linux como host e Windows como convidado.

Se você gosta da facilidade de uso de um Mac, mas deseja programar para Windows (ou se deseja um pacote de software que seja apenas para Windows), também é uma opção.

Não estou dizendo que o Linux não pode jogar ou que o MacOS não é para programadores, pois isso seria simplesmente um monte de mentiras. É que a única pessoa que pode dizer qual sistema operacional pode ser mais adequado ao que você quer fazer é você .

Você realmente precisa entender o que deseja que sua máquina faça primeiro . Somente então você poderá descobrir o que uma máquina virtual pode fazer por você.

Para responder suas perguntas:

Will the graphics and video rendering quality will be just as good?

Não. A placa gráfica emulada pode fornecer alguns recursos da placa gráfica host, mas provavelmente não suporta recursos complexos, como aceleração de vídeo por hardware ou recursos de programação CUDA.

Will there be any hardware issue such as using HDMI or WiDi?

Novamente, esses recursos extras provavelmente não serão um recurso de qualquer hardware emulado / virtual disponível.

Will applications run just as smoothly as long as enough RAM is allocated?

A maioria dos aplicativos (desde que não exijam recursos específicos de hardware) será executada quase tão rapidamente quanto no hardware real, desde que você não morra de fome nem com o host nem com o convidado da memória.


+1 obrigado pela sua resposta. Vou mudar minha pergunta para refletir a "inclinação".
Kamil Sindi

8

As máquinas virtuais (VMs) sempre são executadas mais lentamente que o sistema host, porque o sistema convidado precisa solicitar que o host faça interface com o hardware, como placa gráfica, discos rígidos, memória etc., porque é um programa em execução no sistema host e não possui controle direto do hardware. No entanto, se o seu hardware puder lidar com isso, a lentidão pode não ser muito perceptível.

A razão para isso é que o processador pode executar apenas uma instrução por vez. Os programas geralmente consistem em milhares ou milhões de instruções da máquina. Quando a máquina inicia, ela verifica o MBR (Master Boot Record) em busca de um carregador de inicialização. O carregador de inicialização inicia o kernel. O kernel é o processo principal que controla todo o hardware. A multitarefa, que está alternando entre várias tarefas, permite executar mais de um programa por vez, mesmo que apenas um esteja sendo executado em um determinado momento. A maioria dos processadores gasta apenas cerca de 20% do tempo realizando cálculos matemáticos. Os processadores com vários núcleos permitem que a próxima instrução seja buscada enquanto aguarda a execução de outro núcleo, reduzindo o tempo ocioso e acelerando significativamente o sistema. Além do kernel, há o shell (que fornece uma interface para os usuários),

O software de virtualização é um aplicativo que, como qualquer outro aplicativo, é gerenciado pelo kernel. Portanto, o kernel da VM deve aguardar a permissão do kernel do host para fazer qualquer coisa e será interrompido com frequência. Quanto mais processos estiverem em execução no sistema host, menor será o tempo de execução que será alocado para a VM, tornando-o mais lento. As VMs geralmente são executadas três a quatro vezes mais lentamente que as máquinas físicas.

Se você quiser rodar jogos ou algo assim, alocarei muita RAM e o máximo de tempo possível do kernel. Vários processadores ajudam. No entanto, a alocação de muita RAM diminuirá a velocidade do sistema, pois leva mais tempo para acessar os dados e pode causar cache excessivo no disco rígido no sistema host. Mas, por outro lado, muito pouco causará quantidades excessivas de armazenamento em cache no disco rígido no convidado. Como o Windows tem tanta fome de recursos, eu alocaria pelo menos 2 a 4 GB de RAM, mas não alocaria mais da metade da sua RAM à VM.

Se responder muito lentamente, uma opção melhor pode ser a inicialização dupla. Dessa forma, ambos poderão utilizar totalmente os recursos do sistema, mas, infelizmente, você pode executar apenas um de cada vez. Se você fizer isso, provavelmente desejará pelo menos três partições: uma para Linux, uma para Windows e uma (ou mais) para seus arquivos.


Alguma idéia de quão poderosa a máquina precisa ser para que não haja diferença perceptível?
27512 Kamil Sindi

Não tenho certeza, pois só executei o Windows como host nos meus computadores. Minha recomendação seria experimentá-lo e ver se funciona bem o suficiente. Caso contrário, eu usaria uma inicialização dupla. Minha experiência pessoal foi que coisas como o Wordperfect são rápidas o suficiente, mas os jogos apresentam um desempenho ruim nas VMs.
ctype.h

Quais são os detalhes específicos para o seu sistema? Quanta RAM você tem? Qual a frequência e o número de núcleos do seu processador? Suporta Virtual Assisted Virtualization (HAV)?
ctype.h

+1 para uma visão geral muito interessante. Minhas especificações são 8 GB de RAM, Solid State Drive e Intel Core i5-2410M (velocidade do clock em 2,3 GHz). Não tenho certeza sobre o HAV. É um modelo muito novo (2011).
Kamil Sindi

6

Assim. O VMWare Player é um hipervisor tipo 2. Isso significa que um convidado fica em cima de um sistema operacional. Em um hipervisor tipo 1, a plataforma de virtualização fica acima do hardware. É porque o VMWare Player está em um hipervisor tipo 2 que ele será executado mais lentamente do que em um tipo 1. No entanto, o VMWare Player oferece a capacidade de personalizar os requisitos de hardware da sua VM. Portanto, se você possui um sistema com um processador quad core com 4 GB de RAM, pode oferecer 1 ou 2 núcleos e, em seguida, 2 GB de RAM (min. Req para Windows x64) para ter uma VM que seja executada com eficiência.

Por exemplo, eu tenho um XPS 14z e tenho o Windows 7 nele. Também corro uma VM do Windows 7 - aloquei 2 GB de RAM e 2 núcleos de processador (dos meus 4).

Portanto, quando executo programas nele (Notepad ++, Transwiz, Outlook, Word, Excel, etc.), não há redução perceptível. Eu nunca tentei executar um software intenso nele (Photoshop, etc). Portanto, dependendo do seu uso - um hipervisor tipo 2 pode ou não atender às suas necessidades. Se você quiser usá-lo para jogos, isso dependerá do jogo. Eu executei alguns jogos Steam nele e não tive problemas (às vezes eu RDP da minha máquina Fedora para a minha VM), mas isso realmente depende dos requisitos do jogo. Para jogos em todos os sentidos, eu não usaria uma VM para fazer isso. Jogo na minha máquina W7 e depois uso uma VM (Fedora, na verdade) para fazer outras coisas. Você deseja que os aplicativos mais intensivos tenham primeiro acesso ao hardware.


1

Então, instalei o Windows 7 no Linux Mint 12 através do VMWare Player. A renderização de vídeo do Windows 7 no Linux Mint é pior que o Windows 7 como sistema operacional principal. Não configurei nada e não sei se há algo a ser configurado para melhorar a renderização de vídeo dos arquivos avi.

Eu achei a velocidade de execução de aplicativos rápida na minha máquina de 8 GB de memória. Isso não foi um problema. Dito isto, não tentei nada com muita memória, como edição de vídeo ou foto. Apenas aplicativos regulares do Office.


Você sempre pode alocar mais CPU, RAM ou memória de vídeo para sua máquina virtual.
precisa saber é o seguinte

1

O problema com a tecnologia VM é que ela não pode endereçar sua memória física da mesma maneira se você estivesse executando um sistema operacional real usando a memória. Uma imagem de VM usa endereçamento de memória lógica se executada usando o mesmo espaço de endereçamento físico, de forma que você não possa executar os dois sistemas operacionais ao mesmo tempo. Embora as VMs modernas tenham percorrido um longo caminho, você pode dizer até 90% -95% de jogos de qualidade, eles ainda não têm a capacidade de executar seus jogos a toda velocidade. Esses 90% -95% visam puramente o endereçamento lógico versus o endereçamento físico da memória do computador. Agora que abrange apenas o argumento de endereçamento / alocação de memória, o outro problema é que o Windows usa o DirectX até onde sei que nenhum software de VM, incluindo o VMware, oferece suporte total a qualquer um dos DX mais recentes. Portanto, se você usar algo além do DX 9, estará praticamente ferrado.

O QEMU no Linux é provavelmente o melhor para jogos!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.