Virtualização

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Mergefrom 2.svg
O artigo ou secção Comparação entre aplicações de virtualização de máquinas deverá ser fundido aqui.
Editor, considere adicionar mês e ano na marcação. Isso pode ser feito automaticamente, com {{Fusão de|....|{{subst:DATA}}}}.

Se discorda, discuta sobre esta fusão aqui.
Question book.svg
Esta página ou secção não cita nenhuma fonte ou referência, o que compromete sua credibilidade (desde setembro de 2012).
Por favor, melhore este artigo providenciando fontes fiáveis e independentes, inserindo-as no corpo do texto por meio de notas de rodapé. Encontre fontes: Googlenotícias, livros, acadêmicoScirusBing. Veja como referenciar e citar as fontes.

Em computação, virtualização é a simulação de uma plataforma de hardware, sistema operacional, dispositivo de armazenamento ou recursos de rede.

Cada vez mais empresas estão buscando formas de reduzir os custos e complexidade com o ambiente de TI. A virtualização se tornou um componente chave para o desenvolvimento de uma estratégia eficiente na busca destes objetivos. Dentre os desafios enfrentados nos datacenters podemos destacar:

  • datacenters atingiram a capacidade máxima;
  • servidores subutilizados;
  • gerenciamento e Segurança complexa dos servidores;
  • hardware e sistemas legados;
  • problemas de compatibilidade de aplicações.


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.[1] [2]

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 workstation e 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.
  • Infraestrutura de desktop virtual (Virtual Desktop Infrastructure - VDI) — o VDI permite que você hospede máquinas virtuais cliente em uma estrutura de virtualização como virtualização de servidores.
  • 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.

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.


Lista de implementações de máquinas virtuais[editar | editar código-fonte]

Em soma aos métodos de virtualização portável descritas acima, as máquinas virtuais são usualmente utilizadas como modelo de execução para linguagens individuais de script. Esta tabela descreve as implementações de máquinas virtuais, ambos da categoria de máquinas virtuais portáveis e máquinas virtuais de linguagens de script.

Máquina virtual Linguagens Comentários Interpretador Compilação Just in Time Linguagem implementação Linhas de códio fonte
Adobe Flash Player (aka Tamarin) ActionScript, SWF (formato ficheiro) interactive web authoring tool. bytecode is named "ActionScript Byte Code (.abc)" Sim Sim C++ 135k (initially released)
BEAM Erlang, Reia, Lisp Flavoured Erlang, Elixir There exists a native-code compiler, HiPE. Sim Não C 247k
Clipper p-code Clipper, Harbour plankton, HVM Sim Não C
Dis (Inferno) Limbo Dis Virtual Machine Specification Sim Sim C 15k + 2850 per JIT arch + 500 per host OS
DotGNU/Portable.NET Linguagens de programação CLI incluindo: C# Clone of Common Language Runtime Não Sim C, C#
Forth Forth Funções estão simplificadas, normalmente contêm assemblador, compilador, interpretadores de nível-textos e nível-binarios, algumas vezes com editor, debugador e sistema operativo.sometimes editor, debugger and OS. Compilation speeds are >20 SKLOC/S and behave much like JIT. Sim Não Forth, Forth Assembler 2.8K to 5.6K; advanced, professional implementations are smaller.
Glulx Glulx, Z-code
Icon Icon
JVM Java, Jython, Groovy, JRuby, C, C++, Clojure, Scala e e outros Reference implementation by Sun ; OpenJDK: code under GPL ; IcedTea: code and tools under GPL Sim Sim JDK, OpenJDK & IcedTea com JIT regular : Java, C, ASM ; IcedTea com o "Zero" JIT : Java, C JVM contêm cerca de 6500k linhas; TCK é 80k de testes e têm cerca de 1000k linhas
LLVM C, C++, Objective-C, Ada, and Fortran MSIL, C and C++ output are supported. ActionScript Byte Code output is supported by Adobe Alchemy. bytecode is named "LLVM Bytecode (.bc)". assembly is named "LLVM Assembly Language (*.ll)". Sim Sim C++ 811k [3]
Lua Lua Sim LuaJIT C 13k + 7k LuaJIT
MMIX MMIXAL
Mono CLI languages including: C#, VB.NET, IronPython, IronRuby, e outros clone do Common Language Runtime. Sim Sim C#, C 2332k
Oz Oz, Alice
NekoVM currently Neko and haXe Sim x86 only C 46k
O-code machine BCPL
UCSD p-System Pascal UCSD Pascal, muito utilizado no final da década de 1970 incluindo o Apple II
Parrot Perl (6 & 5), NQP-rx, PIR, PASM, PBC, BASIC, bc, C, ECMAScript, Lisp, Lua, m4, Tcl, WMLScript, XML, e outros Sim Sim C, Perl 111k C, 240k Perl
Perl virtual machine Perl op-code tree walker Sim Não C, Perl 175k C, 9k Perl
CPython Python Sim Psyco C 387k C, 368k Python, 10k ASM, 31k Psyco
PyPy Python Self-hosting implementation of Python, next generation of Psyco Sim Sim Python
Rubinius Ruby para outra implementação Virtual machine for another Ruby Sim Sim C++, Ruby
Silverlight C#, VB.NET A Micro-version of Microsoft .NET Framework to let applications run sandboxed inside browser Sim Sim C++ 7MB (initially released)
SEAM Alice
ScummVM Scumm Computer game engine
SECD ISWIM, Lispkit Lisp
Squirrel Squirrel Sim Squirrel_JIT C++ 12k
Smalltalk Smalltalk
SQLite SQLite opcodes Virtual database engine
Squeak Squeak Smalltalk Self hosting implementation of Squeak virtual machine. Rich multi-media support. Sim Cog[1] & Exupery Smalltalk/Slang 110k Smalltalk, ~300K C
TaoGroup VP/VP2 C, Java Proprietary embedded VM
TraceMonkey JavaScript Based on Tamarin Não Sim C++ 173k
TrueType TrueType Motor visualização de fontes Sim Não C (típico)
Valgrind x86/x86-64 binaries Verificando acessos de memória e falhas de indicadores sobre o Linux C 467k [4]
VisualWorks Smalltalk Não Sim C
VMKit JVM and CLI virtual machine based on LLVM. Não Sim
Vx32 virtual machine x86 binaries Application-level virtualization for native code Não Sim
Waba Virtual machine for small devices, similar to Java
Yet Another Ruby VM (YARV) Ruby Virtual machine of the reference implementation for Ruby 1.9 and newer versions Sim Sim C
Z-machine Z-Code
Zend Engine PHP Sim Não C 75k
libJIT Library for Just-In-Time compilation Common Intermediate Language Java bytecode Domain-specific programming language Virtual machine is used in Portable.NET Just-In-Time compiler, ILDJIT, HornetsEye Sim Sim C, ia32, arm, amd64, alpha, low-level CPU architecture specific machine code

Referências

  1. Virtualization in education (PDF) (em ingles). IBM (Outubro 2007).
  2. Microsoft, VMware, Citrix Battle for Hypervisor Cloud | Virtualization (em ingles). ITBusinessEdge.com. Página visitada em 2010-12-10.
  3. A infraestrutura compilador LLVM, ohloh.net, 2011 Nov 30
  4. Valgrind, ohloh.net, 2011 Nov 30.

Ver também[editar | editar código-fonte]

Bibliografia

Ligações externas[editar | editar código-fonte]


Portal A Wikipédia possui o portal:



Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.