Upload
deisy0920
View
2.218
Download
7
Embed Size (px)
Citation preview
Es un software que emula a una computadora y puede ejecutar programas
como si fuese una computadora real. Este software en un principio fue definido
como "un duplicado eficiente y aislado de una máquina física". La acepción del
término actualmente incluye a máquinas virtuales que no tienen ninguna
equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los procesos que
ejecutan están limitados por los recursos y abstracciones proporcionados
por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".
Uno de los usos domésticos más extendidos de las máquinas virtuales
es ejecutar sistemas operativos para "probarlos". De esta forma podemos
ejecutar un sistema operativo que queramos probar (Linux, por ejemplo) desde
nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de
instalarlo directamente en nuestra computadora y sin miedo a que se des
configurar el sistema operativo primario.
Funcionamiento de la máquina virtual de Java, una de las máquinas virtuales
de proceso más populares.
Funcionamiento de VMWare, una de las máquinas virtuales de sistema más
populares.
Las máquinas virtuales se pueden clasificar en dos grandes categorías según
su funcionalidad y su grado de equivalencia a una verdadera máquina.
Máquinas virtuales de sistema (en inglés System Virtual Machine)
Máquinas virtuales de proceso (en inglés Process Virtual Machine)
Máquinas virtuales de sistema
Las máquinas virtuales de alivio sistema, también llamadas máquinas
virtuales de hardware, permiten a la máquina física subyacente multiplexarse
entre varias máquinas virtuales, cada una ejecutando su propio sistema
operativo. A la capa de software que permite la virtualización se la
llama monitor de máquina virtual o "hypervisor". Un monitor de máquina
virtual puede ejecutarse o bien directamente sobre el hardware o bien sobre un
sistema operativo ("host operating system").
Aplicaciones de las máquinas virtuales de sistema
Varios sistemas operativos distintos pueden coexistir sobre la misma
computadora, en sólido aislamiento el uno del otro, por ejemplo para probar un
sistema operativo nuevo sin necesidad de instalarlo directamente.
La máquina virtual puede proporcionar una arquitectura de
instrucciones (ISA) que sea algo distinta de la verdadera máquina. Es
decir, podemos simular hardware.
Varias máquinas virtuales (cada una con su propio sistema operativo
llamado sistema operativo "invitado" o "guest"), pueden ser utilizadas
para consolidar servidores. Esto permite que servicios que normalmente
se tengan que ejecutar en computadoras distintas para evitar interferencias,
se puedan ejecutar en la misma máquina de manera completamente aislada
y compartiendo los recursos de una única computadora. La consolidación
de servidores a menudo contribuye a reducir el coste total de las
instalaciones necesarias para mantener los servicios, dado que permiten
ahorrar en hardware.
La virtualización es una excelente opción hoy día, ya que las máquinas
actuales (Laptops, desktops, servidores) en la mayoría de los casos están
siendo "sub-utilizados" (gran capacidad de disco duro, memoria RAM, etc.),
llegando a un uso de entre 30% a 60% de su capacidad. Al virtualizar, la
necesidad de nuevas máquinas en una ya existente permite un ahorro
considerable de los costos asociados (energía, mantenimiento, espacio,
etc.).
Máquinas virtuales de proceso
Una máquina virtual de proceso, a veces llamada "máquina virtual de
aplicación", se ejecuta como un proceso normal dentro de un sistema
operativo y soporta un solo proceso. La máquina se inicia automáticamente
cuando se lanza el proceso que se desea ejecutar y se para cuando éste
finaliza. Su objetivo es el de proporcionar un entorno de
ejecución independiente de la plataforma de hardware y del sistema
operativo, que oculte los detalles de la plataforma subyacente y permita que
un programa se ejecute siempre de la misma forma sobre cualquier plataforma.
El ejemplo más conocido actualmente de este tipo de máquina virtual es
la máquina virtual de Java. Otra máquina virtual muy conocida es la del
entorno .Net de Microsoft que se llama "Common Language Runtime".
Máquinas virtuales de proceso
Common Language Runtime - C#, Visual Basic .NET, J#, Managed C++.
EiffelStudiopara el lenguaje de programación Eiffel.
Lenguaje de programación Erlang.
Forth virtual machine - Forth.
Glulx - Glulx, Z-code.
Harbour - Harbour virtual machine.
Hec - Hasm Assembler.
Inferno - Limbo.
Java virtual machine - Java, Nice, NetREXX.
Low Level Virtual Machine (LLVM) - actualmente C, C++, Stacker.
Lua.
Macromedia Flash Player - SWF.
MMIX - MMIXAL.
Neko virtual machine actualmente Neko y haXe.
O-code machine - BCPL.
P-code machine - Pascal.
Parrot - Perl 6.
Perl virtual machine - Perl.
Portable.NET - C#, Visual Basic .NET, J#, Managed C++.
YARV - Ruby.
Rubinius - Ruby.
ScummVM - Scumm.
SECD machine - ISWIM, Lispkit Lisp.
Sed the stream-editor can also be seen as a VM with 2 storage spaces.
Smalltalk virtual machine - Smalltalk.
SQLite virtual machine - SQLite opcodes.
Squeak virtual machine - Squeak.
SWEET16.
TrueType virtual machine - TrueType.
Valgrind - chequeo de accesos a memoria y "leaks" en x86/x86-64 code
under Linux.
VX32 virtual machine - application-level virtualization for native code.
Virtual Processor (VP) from Tao Group (UK).
Waba - similar a Java, para dispositivos pequeños.
Warren Abstract Machine - Prolog, CSC GraphTalk.
Z-machine - Z-Code.
Zend Engine - PHP.
Máquinas virtuales de sistema
VThere (de Sentillion, Inc.
ATL (A MTL Virtual Machine).
Bochs emulador de PC x86 y AMD64, portátil y open source.
Co Linux Open Source Linux inside Windows.
Denali, uses para virtualization of x86 for running para-virtualized PC
operating systems.
FAUmachine.
Hercules emulator, free System/370, ESA/390, z/Mainframe.
Integrity Workstation Green Hills Software.
LilyVM is a lightweight virtual machine.
Microsoft Virtual PC y Microsoft Virtual Server.
OKL4.
Parallels Workstation, virtualización de x86 para ejecutar sistemas
operativos.
Parallels Desktop for Mac, virtualización de x86 para ejecutar máquinas
virtuales en Mac OS X.
QEMU, muy popular en entornos Linux.
SheepShaver.
Simics.
SVISTA.
Trango Virtual Processors.
TwoOStwo.
User-mode Linux.
VirtualBox.
Virtual Iron (Virtual Iron 3.1).
Virtual Operating System de Star Virtual Machines.
VM de IBM.
VMware (ESX Server, Fusion, Virtual Server, Workstation, Player y ACE).
Xen.
KVM.
IBM POWER SYSTEMS.
Máquinas virtuales a nivel de sistema operativo
OpenVZ.
Virtuozzo.
FreeVPS.
Linux-VServer.
FreeBSD Jails.
Solaris Containers.
AIX Workload Partitions.
Necesitas tener un procesador rápido (cuanto más rápido mejor), necesitas
tener bastante espacio libre en tu disco, sobre todo si vas a trabajar con varias
máquinas virtuales y los discos usados van a necesitar bastante espacio (en
algunos casos estamos hablando de 5 a 8 gigas para cada máquina virtual,
todo dependiendo de lo que instales). También necesitas memoria, siempre
será mejor 1 GB que 512 MB o 2 GB que 1, todo dependerá de cuanta
memoria quieras que tengan esas máquinas virtuales, pero en la mayoría de
los casos, con 256 ó 384 MB van de maravilla, por tanto necesitarás como
mínimo 1 GB para trabajar más o menos cómodo.
Por supuesto, esos requisitos los impondrá el programa para crear máquinas
virtuales que uses, en este caso vamos a trabajar con una versión gratuita de
Microsoft Virtual Server 2005 R2, a continuación te resumo un poco esos
requisitos, pero puedes.
Velocidad de procesador: 550 MHz mínimo, 1 GHz recomendado.
Memoria RAM: 256 como mínimo más la memoria que se asigne a la
máquina virtual.
Disco duro: Mínimo 2 GB más el espacio que usemos en las máquinas
virtuales.
Tipos de procesadores: Intel Celeron, Pentium III, Pentium 4, Xeon;
AMD Opteron, Athlon, Athlon 64, Athlon X2, Sempron, o Duron.
Sistema operativo base: Windows XP SP2 y Windows 2003 Server o
posterior.
Lo bueno que tienen esas máquinas virtuales es que puedes instalar cualquier
sistema operativo en ellas, incluso sistemas operativos diferentes al sistema
operativo real, por ejemplo, supongamos que tenemos un Windows XP, dentro
de ese XP podemos tener desde un Linux hasta un Windows 2003 Server
pasando por un Windows Vista.
Cuando instalas un sistema operativo en una máquina virtual es como si
instalaras el sistema operativo desde cero, incluso puedes formatear un disco,
crear particiones, etc., todo igual que si fuera un ordenador normal y corriente.
Lo bueno de tener o usar máquinas virtuales es que en realidad no es necesario que tengas más discos duros ni más CD o DVD, ya que todo es "simulado", puedes crear discos duros virtuales que en realidad son también
"simulados", ya que en realidad son ficheros que el programa crea y en el que instala todo lo que quieras instalar.
Además de los discos simulados (o virtuales), también puedes usar cosas que ya tienes en tu equipo, por ejemplo, un CD o un DVD, la impresora, otro disco duro “real” etc. Pero también puedes “simular” cosas que no tienes, por ejemplo una disquetera que ya casi nadie usa. Y la ventaja de usar los CD o DVD simulados es que puedes trabajar con “imágenes” como si fueran discos compactos reales. Esas imágenes son las que los propios programas de grabación crean, y que suelen tener extensiones como .iso o .img.
Cuando indicas la memoria a usar, siempre debes disponer de esa memoria, además por supuesto de la que el programa "simulador" requiera, por regla general el programa "virtualizador" te indica de cuanta memoria máxima (y recomendable) puedes asignar.