Um sistema operacional é um programa (ou um conjunto de programas) que fornece uma interface entre o computador e o usuário, gerenciando os recursos da máquina e permitindo a execução dos programas aplicativos acionados pelo usuário o por este previamente agendados.
Normalmente o sistema operacional é executado em uma máquina (um computador) real, mas também pode ser executado em uma máquina virtual. A virtualização é executada por um programa de vistualização que “engana” o sistema operacional, que opera exatamente como se estivesse em uma máquina física. Para o usuário tudo se processa como se o sistema virtualizado estivesse sendo executado em uma máquina real, operda remotamente da mesma forma que se faz com máquinas ligadas em rede através de programas de acesso remoto como o VNC, LogMeIn ou TeamViewer, mas não existe outra máquina, o sistema operacional está rodando em um processo completamente separado porém na mesma máquina física do sistema principal chamadode “hospedeiro”.
Obviamente o processo consome muita memória pois está rodando um sistema operacional inteiro com seus programas aplicativos, além das funções de virtualização. Havendo memória suficiente um máquina pode “hospedar” várias máqinas virtuais ao mesmo tempo, inclusive rodando sistemas operacionais diferentes. Assim, uma máquina Windows pode rodar máquinas virtuais rodando Linux e vice-versa.
Esse recurso abre uma imensa gama de possibilidades, permitindo que aplicções específicas rodem dendro de suas próprias máquinas virtuais, completamente isoladas umas das outras, ou que diferentes ambientes com diferentes sistemas operacionais ou comconfigurações completamente distintas coexistam em uma mesma máquina. Um vcuidado extra deve ser tomado nocaso de sistemas proprietários como o Windows, cada máquina virtualrodando simultaneamente deve ter sua própria licença de uso, caso contrário torna-se uma instalação pirata, independentemente de haver licença para a máquina hospedeira ou outras instâncias em máquinas virtuais diferentes.
Já no caso do Linux, FreeBSD ou outros sistemas livres, pode-se produzir tantas máquinas virtuais com quantas configurações se queira ou seja necessário sem a limitação de licenças de uso. Uma vez fechada a máquina virtual (que é desligada da mesma forma que se desliga uma máquina física, os dados são gravados em um arquivo de disco que pode ser movido para outra máquina física ou executado conforme se desejar. A máquina pode também gravar o estado da memória em umdeterminado momento, voltando exatamente para o mesmo ponto, com os mesmos programas abertos, mantendo inclusive dados ainda não salvos nos programas em execução. Obviamente esses arquivos não são pequenos exigindo bastante espaço de armazenamento.
O uso de máquinas virtuais em servidores é corriqueiro eventualmente com dezenas de máquinas virtuias rodando em um único servidor físico. Mas mesmo as máquinas domésticas tem memória e espaço em disco suficientes para rodar uma ou duas máquinas virtuais e se beneiciar desse recurso. O acesso ao Internet anking por exemplo fica muito mais seguro se executado dentro de uma máquina virtual corretamente configurada com todos os parâmetros de segurança, sem nenhum outro programa em execução ou sequer instalado, com todas as portas e endereços desnecessários a esse acesso devidamente bloqueados.
Para rodar uma máquina virtual é necessário usar um programa de virtualização. Existem vários programas disponíveis como o VMWare, Virtual PC, Vagrant, Hyper-V, etc, mas o que eu utilizo com mais frequência e recomendo é o VirtualBox. Este é um programa de virtualização sob a licença GPL (General public Licence), ou seja, é um software livre. Pode ser baixado, instalado e executado sem custos e possui boa documentação e uma grande comunidade de usuários que se ajudam mutuamente. Para quem quer conhecer mais recomendo a leitura deste texto com todas as informações necessária para qualquer um fazer suas primeiras experiências com máquinas virtuais.