Вы находитесь на странице: 1из 2

O que é virtualização?

[editar | editar código-fonte]


Virtualização, basicamente, é a técnica de separar aplicação e sistema operacional dos
componentes físicos. Por exemplo, uma máquina virtual possui aplicação e sistema
operacional como um servidor físico, mas estes não estão vinculados ao software e pode
ser disponibilizado onde for mais conveniente. Uma aplicação deve ser executada em um
sistema operacional em um determinado software. Com virtualização de aplicação ou
apresentação, estas aplicações podem rodar em um servidor ou ambiente centralizado e
ser deportada para outros sistemas operacionais e hardwares.[2][3]

Soluções de virtualização[editar | editar código-fonte]


Abaixo, as formas mais comuns de virtualização:

 virtualização de servidor: técnica de execução de um ou mais servidores virtuais sobre


um servidor físico; permite maior densidade de utilização de recursos (hardware,
espaço e etc.), enquanto permite que isolamento e segurança sejam mantidos;
 virtualização de aplicação: a virtualização de aplicação permite executar aplicações
em um ambiente virtualizado no desktop do usuário, isolando a aplicação do sistema
operacional; isso é possível através do encapsulamento da aplicação no ambiente
virtual — quando a solução completa de virtualização de aplicações é implantada, é
possível distribuir aplicações de um servidor central;
 virtualização de desktop: consiste na execução de múltiplos sistemas operacionais em
uma única estação de trabalho, permitindo que uma aplicação de linha de negócio seja
executada em um sistema operacional não compatível;
 virtualização de apresentação: a virtualização de apresentação permite executar e
manter o armazenamento das aplicações em servidores centralizados, enquanto provê
uma interface familiar para o usuário em sua estação;
 virtualização de dados: é uma abordagem para unificar dados de várias fontes em uma
única camada para que aplicativos, ferramentas de relatórios e usuários finais possam
acessar os dados sem precisar de detalhes sobre a origem original, a localização e as
estruturas de dados;[4]
 virtualização de perfil: com a virtualização de perfil, os usuários podem ter os
documentos e perfil separados de uma máquina específica, o que permite a fácil
movimentação do usuário para novas estações em caso de roubo ou quebra de
equipamento. A virtualização de perfil também permite ter uma experiência de desktop
única quando utilizando outras tecnologias de virtualização, como VDI (virtual desktop
infrastructure).
Um dos componentes críticos para a implantação de um projeto de virtualização,
independente da tecnologia utilizada, são as ferramentas de gerenciamento. As
ferramentas que gerenciam o ambiente virtual devem gerenciar tanto o ambiente físico
como o virtual, assim como sistema operacional e aplicações.
As instruções de virtualização são processadas em variáveis locais utilizando um modelo
principal modelo de computação, usualmente cada stack machine, register machine,
ou Random access machine são chamadas de máquina memória. A utilização destas três
técnicas é motivada por técnicas de otimização de máquinas virtuais e máquinas físicas,
como a facilidade utilização do interpretador, compilação e verificação para a segurança.
O gerenciamento de memória nestes sistemas portáveis de virtualização inicia-se num
nível superior de abstração que num caso típico de máquina física. Alguns programas de
virtualização, como a popular JVM, gerem os endereços de memória numa determinada
maneira, que requerem um seguro gerenciamento automático da memória permitindo à
maquina virtual manter registos de referências indicativas, e não permitir que o código
fonte possa construir novas referências indicativas na memória. Outros tipos de software
de virtualização como os LLVM, são mais parecidos como uma computador tradicional,
permitindo o uso e manipulação de indicadores de memória. A CIL oferece uma solução
híbrida entre as soluções apresentadas, oferecendo os dois tipos de controle da memória
(como o JVM, que permite gestão de memória automática), e também um modo "inseguro"
que permite manipulação de indicadores num modo que pode violar os constrangimento
dos tipo e suas permissões.
Segurança do programa refere-se habilidade do software portável da virtualização
executar código enquanto subscreve determinado conjunto de capacidades. Por exemplo,
uma máquina virtual pode somente deixar aceder a um conjunto de instruções ou dados.
Os mesmos controles sobre indicadores que tornam a gestão automática da memória
possível e segurança do programa, asseguram que um fragmento de código só têm
acesso a um determinado conjunto de elementos da memória e não pode subverter a
própria máquina virtual. Outros mecanismos de segurança são aplicados no seguimento
de técnicas de verificação do código, verificação de pilhas, e outros processos.
Um Interpretador permite aos programas compostos de instruções de virtualização serem
preparados e executados imediatamente sem sofrerem um atraso potencialmente caro de
compilação em código de máquina. Qualquer sistema de virtualização que pode ser
executado pode ser interpretado, por isso a designação da coluna aqui, refere-se a
questão da implementação inclui provisões para uma interpretação eficiente. (para usos
comuns).
Compilador just-in-time ou JIT, refere-se ao método de compilação do código nativo
diferindo para o último momento possível, de preferência mesmo antes ou durante a
execução do programa. A dificuldade do JIT têm haver mais com a implementação que
arquitetura da máquina de virtualização, mesmo assim, novas teorias e implementações
começaram a ter em conta a eficiência. A técnicas mais simples de JIT, simplesmente
executam a compilação para um fragmento-código de maneira similar a um compilador
tradicional. As técnicas mais utilizadas, têm em conta o tipo de código especializado aos
parâmetros que só são conhecidos na altura da execução. (ver en:Adaptive optimization).
Pre-compilação refere-se a uma técnica mais clássica de utilização de um compilador
offline para gerar o código nativo que não se altera durante a execução. Pelas razões que
uma compilação agressiva e otimização podem demorar tempo, um programa pré-
compilado pode iniciar a execução mais rápido que outro que dependo somente da técnica
JIT. As implementações JVM reduziram esta diferença do custo de carregamento do
programa, inicialmente utilizando interpretação, até que alguns fragmentos de código
nativo possam ser gerados através do JIT.
Biblioteca compartilhada é uma técnica para reutilizar os segmentos de código nativo
entre vários programas que estão em execução. Nos sistemas operativos modernos, isso
geralmente significa que a memória virtual partilha páginas de memória que contem
bibliotecas partilhadas de diferentes processos que estão protegidos de outros processos
através da proteção de memória. É interessante que técnicas agressivas de JIT como a
optimização adaptativa, usualmente produz fragmentos de código não reutilizável ou
compartilhar com outros processos ou mesmo novas execução do programa, requerendo
um compromisso entre eficiência do código pré-compilado e código partilhável e as
vantagens do código especializado e adaptativo. Por exemplo, algumas provisões no
desenho e estrutura do CIL estão presentes para permitir a partilha eficiente das
bibliotecas, possivelmente com o custo de código JIT mais especializado. A
implementação JVM no Mac OS X utiliza o Java Shared Archive (apple docs) para dar
algum benefício da técnica de compartilha de biblioteca.

Вам также может понравиться