Share via


O Passo a Passo da Virtualização

Já que vamos abordar o tema virtualização, que tal começarmos pelos primeiros passos?

O que significa “Virtual”?

Antes de mais nada, vamos analisar a palavra “virtual”, tão usada ultimamente. O que isso quer dizer?
Só para reavivar a memória e dar um exemplo... lembram das aulas de ótica? Imagem real e imagem virtual?
Pois é... uma maneira de definir “virtual” é: “o que não é real”. Ou seja, estamos falando de uma farsa, de uma enganação... (será?!)

Calma... não precisamos pegar tão pesado, mas estamos chegando perto do conceito. “Virtual” é algo que finge ser real, e que melhor será quanto mais parecido for com a realidade.

Um mundo virtual como o “Second Life” procura reproduzir todas as nuances do mundo real. O ambiente não existe fisicamente, mas sua intenção é fazer com que as pessoas se “sintam” num mundo real, e que lá encontrem tudo que existe no mundo de verdade, de forma a poder se comportar como se estivessem vivendo (outra vida) no mundo real. O interessante de ambientes virtuais é que podem ser realizadas experiências que não acarretam conseqüências no mundo real, pois estes mundos são isolados um do outro.

E quais foram os primeiros passos?

Ok, já filosofamos bastante sobre o conceito de virtualização. Vamos voltar à nossa vida (real) de Profissionais de TI e lembrar quando usamos isso pela primeira vez?

No mundo dos micros, muita gente teve o primeiro contato com recursos virtuais rodando o MS-DOS. SIM, O VELHO E BOM DOS!!!

Alguns programas levavam uma eternidade para serem instalados no DOS, a partir dos nada velozes disquetes de 3 ½” (para não falar nos de 5 ¼”). O Windows 3.1 era um bom exemplo.

Lembram qual era a mágica da época? Usar um tal de “RAMDRIVE”, que simulava um leitor com um disquete dentro, só que usando memória RAM. Como o tempo de acesso à memória é milhões de vezes menor do que o acesso ao disquete, as leituras (e escritas) ficavam absurdamente mais rápidas. Conclusão: O conteúdo do(s) disquete(s) era copiado de uma vez para a memória (sequencialmente) e depois, quando era acessado de forma randômica, tudo acontecia incrivelmente mais rápido.

Pois é... estamos falando de virtualização no DOS!!! E para ser honesto, o conceito veio de mais longe ainda... em 1960 já se “virtualizava” em mainframes...

Que tal arriscarmos mais um passo?

No Windows 3.1, há mais dois exemplos claros de virtualização.

O primeiro é a “Memória Virtual”. Por mais incrível que possa parecer, é exatamente o contrário do exemplo que acabamos de abordar: enquanto lá se trocava o disco pela memória, no Windows se trocava a memória pelo disco!

Isso porque a interface gráfica fazia com que os programas para Windows precisassem de bem mais memória (que era um recurso caro). Quando faltava memória, o sistema escolhia um punhado de informações que estavam na RAM - mas que não eram usadas há algum tempo - copiava estes dados para o disco e liberava aquela área de memória. Com isso, uma máquina com 64 MB conseguia carregar 128 MB de dados em memória virtual. Claro que 64 MB estavam em memória (física, ou real) e outros 64 estavam em disco (HD), mas para a aplicação, o “gerenciador de memória virtual” fazia parecer que a máquina tinha 128 MB!

O segundo exemplo é um pouco mais complexo. O Windows (desde as primeiras versões) já virtualizava um ambiente DOS para aquelas aplicações desenvolvidas para ambientes monotarefa e que, portanto, não saberiam compartilhar recursos como portas seriais, paralelas, endereçamento de memória, etc.

O “espaço de endereçamento” da memória, por exemplo, era virtualizado. Isso permitia que duas aplicações DOS acessassem diretamente o endereço da memória de vídeo (0xA000), sem conflitos. O Windows se encarregava de “desviar” esses acessos para a janela de cada aplicação, “fingindo” que cada uma delas tivesse um monitor independente. A mesma coisa acontecia com as portas serias e paralelas.

Conclusão

O que vale notar nessa conversa são as razões para utilizar a virtualização. Quando não é conveniente adicionar recursos “reais” para atingir os objetivos (por questões de custo, espaço, complexidade, tempo, etc), utiliza-se recursos “virtuais”, que são disponibilizados por um sistema inteligente a ponto de “simular” a existência dos recursos reais.

No caso do RAMDRIVE, a disco foi virtualizado em memória para aumentar a performance.

Já no caso da memória virtual do Windows, a idéia era manter a funcionalidade da aplicação sem o custo adicional de grandes quantidades de memória.

No terceiro caso, a virtualização garantiu a compatibilidade e a coexistência de aplicações na mesma máquina, sem conflitos.

Nos próximos passos analisaremos mais apliações do conceito de virtualização... Aguarde!