TEMA 2
MAQUINAS VITUALES
INSTITUTO TÉCNICO SUPERIOR DE COMERCIO “INSCO”
_________________________________________________________________________
MATERIA: TALLER DE SISTEMAS OPERATIVOS
DOCENTE: Ing. ALEJANDRA M. ANTEZANA ROJAS
Máquina Virtual
Una máquina virtual 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".
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".
Máquina Virtual
Siempre que hablemos de máquinas virtuales estaremos
hablando de máquinas virtuales creadas no por el sistema
operativo en sí, sino por un software especializado en crear
maquinas ficticias capaces de comportarse como maquinas
reales a fin de montar sobre ellas sistemas operativos. Este
tipo de software se conoce como aplicaciones de
virtualización.
Máquina Virtual
Uno de los usos domésticos más extendidos de las máquinas virtuales es
ejecutar sistemas operativos para "probarlos".
Arquitectura Típica
Máquina Virtual
De esta forma podemos ejecutar un sistema operativo que queramos
probar, sin necesidad de instalarlo directamente en nuestra computadora y
sin miedo a que se desconfigure el sistema operativo primario.
Anfitrión y Huésped
Los dos conceptos más importantes para entender
qué es la virtualización son los de anfitrión e
invitado o huésped.
Ambos conceptos se refieren a nuestros sistemas
operativos, y por lo tanto deberíamos hablar de
sistema operativo anfitrión y sistema operativo
invitado.
El anfitrión es el sistema operativo del ordenador
en el cual instalamos nuestro programa de
virtualización y que asignará o prestará
determinados recursos de hardware a la
máquina virtual que creemos.
El invitado es el sistema operativo que instalamos en
el ordenador virtual que hemos creado,
mediante nuestro programa de virtualización y al
cual hemos asignado determinados recursos para
funcionar.
REQUISITOS HARDWARE
Para construir la máquina virtual tenemos que
asignar determinados recursos de
hardware, como son espacio en disco duro,
memoria RAM, número de procesadores,
etc. que el anfitrión cederá o compartirá
con el invitado.
Cuando tengamos nuestra máquina virtual el
siguiente paso que debemos hacer consistirá
en instalar un sistema operativo, ya sea
Windows o Linux y funcionará con las mismas
reglas que lo hace en un ordenador normal,
actualizaciones, licencias, instalación de
software adicional, etc.
REQUISITOS HARDWARE
Imaginemos un ordenador en el que tenemos instalado un Windows XP, si en
dicho ordenador instalamos un software de virtualización y creamos una
máquina virtual que corra Windows 7 por ejemplo, dicho ordenador estará
realmente ejecutando dos sistemas operativos al mismo tiempo (el host y el
guest), y todos sus recursos se estarán repartiendo entre ambos. Si dicho
ordenador tiene por ejemplo 2 GB de RAM, podemos darle 1 GB a la
máquina virtual, y nuestro ordenador seguirá funcionando con 1 GB, cosa
totalmente aceptable. Sin embargo, si nuestro ordenador tuviera 1 GB de
RAM únicamente, tendríamos problemas, ya que 512 MB son muy pocos para
trabajar con un sistema operativo de una forma correcta.
Para que la virtualización funcione aceptablemente bien se necesitarán
ordenadores modernos y potentes, que puedan ceder recursos a sus
sistemas invitados para que luego funcionen bien.
REQUISITOS HARDWARE
Es conveniente como mínimo contar con 2 GB de RAM, suficiente espacio en
disco duro, y lo más importante, un microprocesador potente que pueda dividir
su tiempo de proceso entre los dos SO.
Tipos de máquinas virtuales
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 sistema, también llamadas máquinas virtuales
de hardware, permiten a la máquina física dividirse entre varias
máquinas virtuales, cada una ejecutando su propio sistema
operativo. Este tipo de máquinas es de la que hemos hablado hasta
ahora.
A la capa de software que permite la virtualización se la llama
monitor de máquina virtual o "hypervisor", y podemos establecer dos
tipos distintos de monitores.
• De tipo 1. El hypervisor o monitor corre directamente sobre nuestro
hardware y nos permite crear máquinas virtuales, por lo tanto
desaparece la necesidad de contar con un sistema operativo
anfitrión, solo tendremos sistemas huéspedes, y el anfitrión será
directamente nuestro monitor o hypervisor.
• De tipo 2. Es el que hemos visto anteriormente, en el cual un sistema
operativo corre sobre el hardware del sistema, montamos un
monitor o hypervisor sobre dicho sistema operativo anfitrión, y este
monitor crea los sistemas operativos invitados
Para el sistema operativo que se ejecuta dentro de la
máquina virtual toda esta emulación es transparente e
invisible. Todo funciona igual a si se estuviera ejecutando en
un PC normal, sin que sepa que en verdad está metido
dentro de una burbuja dentro de otro sistema operativo.
En su burbuja, la máquina virtual no puede acceder al resto
de datos de la máquina anfitrión a pesar de estar físicamente
funcionando en la misma, están aisladas. No obstante, las
principales aplicaciones de máquinas virtuales como
VirtualBox o VMWare disponen de atajos y herramientas para
facilitar la tarea de pasar archivos de una máquina a otra.
La virtualización
puede ser por
software o con
apoyo mediante el
hardware, en cuyo
caso se obtiene un
mejor rendimiento.
Desde 2005 es
común que los
procesadores
cuenten con
tecnología de
virtualización por
hardware, aunque
no siempre está
activada por
defecto en la BIOS.
Máquinas virtuales de proceso
Una máquina virtual de proceso es menos ambiciosa que una de
sistema. En vez de emular un PC por completo, ejecuta un proceso
concreto, como una aplicación, en su entorno de ejecución, esto se
usa cada vez que ejecutas una aplicación basada en Java o basada
en .NET Framework.
.NET Framework es un entorno de ejecución administrado para
Windows que proporciona diversos servicios a las aplicaciones en
ejecución. Consta de dos componentes principales: Common
Language Runtime (CLR), que es el motor de ejecución que controla
las aplicaciones en ejecución, y la biblioteca de clases de .NET
Framework, que proporciona una biblioteca de código probado y
reutilizable al que pueden llamar los desarrolladores desde sus propias
aplicaciones.
Máquinas virtuales de proceso
Esto es de utilidad a la hora de desarrollar aplicaciones
para varias plataformas, pues en vez de tener que
programar específicamente para cada sistema, el
entorno de ejecución (es decir, la máquina virtual) es el
que se encarga de lidiar con el sistema operativo.
Máquinas virtuales de
proceso
Las máquinas virtuales de proceso te permiten disfrutar de
aplicaciones que se comportan de forma igual en plataformas
tan distintas como Windows, Mac o Linux, pero tú como
usuario normalmente no les prestarás mucha atención. Por eso,
salvo que seas programador, generalmente cuando se habla
de máquinas virtuales nos estamos refiriendo a las de sistema.
TÉCNICAS DE VIRTUALIZACIÓN
Hoy en día se usan 3 técnicas de virtualización distintas:
• Virtualización completa del hardware o nativa.
• Virtualización de emulación de hardware o no nativa.
• Virtualización a nivel de Sistema Operativo.
VENTAJAS DE LA VIRTUALIZACIÓN
Ahorro de costes: es una de las cuestiones por las cuales más se han
interesado las empresas en la virtualización, puesto que donde antes
necesitaban dos máquinas ahora puede utilizar sólo una.
Entornos de prueba: tal vez nos interesa virtualizar nuestro propio sistema para
realizar diferentes instalaciones en el sistema virtual y dejar nuestro sistema
anfitrión “limpio”, instalando sólo aquello que definitivamente vamos a usar.
Compatibilidad de programas: cuando utilizas un sistema operativo Linux
o Mac a veces no es posible encontrar el programa que necesitamos para
estas plataformas, por lo que o tenemos instalado Windows o buscamos otra
alternativa.
VENTAJAS DE LA VIRTUALIZACIÓN
Aislamiento, un fallo general de sistema de una máquina
virtual no afecta al resto de máquinas virtuales.
Simplificación de la administración de sistemas, posibilidad
de que el administrador cuente con toda la infraestructura
clonada para fines de prueba y aprendizaje.
Rápida incorporación de nuevos recursos para los servidores
virtualizados, es muy fácil asignar hardware nuevo a una
máquina virtual.
SOLUCIONES DE VIRTUALIZACIÓN
VirtualBox:
Una de las plataformas más interesantes a la hora de
probar la virtualización es VirtualBox, VirtualBox es un hypervisor
de tipo 2 de virtualización completa o nativa.
SOLUCIONES DE VIRTUALIZACIÓN
VMware:
VMware es, hoy en día, la plataforma líder en sistemas
virtualizados y tiene una gran experiencia tanto a nivel
empresarial como a nivel doméstico. Es una solución con un
rendimiento muy bueno, y con grandes posibilidades de
ampliación.
SOLUCIONES DE VIRTUALIZACIÓN
Al contrario que VirtualBox, que es un único programa, VMware presenta varias
soluciones para la virtualización, enumeremos algunas de ellas (las más importantes,
existen bastantes más) :
• VMware player: es un hypervisor de tipo 2 de virtualización completa o nativa al
igual que VirtualBox. Nos permite crear y ejecutar máquinas virtuales. Es ligero y
tiene un rendimiento estupendo. Reconoce sin problemas todos los USB y permite
utilizarlos de forma sencilla, así como compartir carpetas de una forma muy
cómoda. GRATUITO.
• VMware Workstation: es un hypervisor de tipo 2 de virtualización completa o
nativa. Es una versión más potente del VMware player, añadiendo funciones
como son la toma de instantáneas de las máquinas virtuales (esto viene
incluido por defecto en VirtualBox, te da la posibilidad de crear grupos de
máquinas virtuales que trabajen en conjunto, etc.). DE PAGO.
SOLUCIONES DE VIRTUALIZACIÓN
KVM:
La KVM es un componente del sistema operativo de Linux que
brinda soporte nativo a máquinas virtuales en Linux. Ha estado
disponible en las distribuciones de Linux desde 2007.
Esta aplicación necesita soporte de hardware para ejecutar
la virtualización, ya sea con procesadores de Intel o de
AMD. En caso de que nuestro procesador no soporte dichas
tecnologías de virtualización será inútil intentar instalarlo.
SOLUCIONES DE VIRTUALIZACIÓN
SEGURIDAD EN KVM:
Como la base principal de KVM está desarrollada en base a
Linux, hereda exactamente este típico modelo de seguridad y sus
características .
Adicionalmente, la seguridad de KVM puede mejorarse
mediante la instalación de software antivirus para entornos
virtuales. Entre las causas más comunes de los fallos, se destaca el
factor humano: las acciones incorrectas del administrador del
sistema pueden provocar la caída de los servidores KVM y
detener los servicios.
Para que se usan las
maquinas virtuales
Estos son los principales usos:
• Para poder probar otros sistemas operativos. Instalar un sistema operativo en tu PC
es un proceso largo, aburrido y difícil de revertir si no estás satisfecho con los
resultados. Así, cuando hay una nueva versión de Windows es más fácil y seguro
probarla instalándola en una máquina virtual que en tu disco duro. Si algo va mal,
la borras y se acabó, sin arriesgarte a perder mucho tiempo o tus datos.
• Para ejecutar programas antiguos. ¿Qué pasa cuando tu negocio depende de
un software que no se actualiza desde hace 20 años? Si no puedes modernizar el
software no te queda otra que seguir cargándolo en un sistema operativo de su
época. Con una máquina virtual este sistema antiguo puede funcionar en
hardware actual en vez de en una chatarra de PC. Lo mismo se puede aplicar a
juegos antiguos que han dejado de funcionar en hardware o software moderno.
Para que se usan las
maquinas virtuales
Para usar aplicaciones disponibles para otros sistemas. También es
posible que necesites una máquina virtual para ejecutar aplicaciones
que han sido desarrolladas para otro sistema operativo distinto al que
estás usando. Por ejemplo, para usar una aplicación para Linux desde
Windows, o vice versa.
Para probar una aplicación en distintos sistemas. Como desarrollador de
una aplicación te interesa que funcione correctamente en la mayor
cantidad de configuraciones posibles, y eso incluye distintas versiones
de sistemas operativos. Una opción es tener media docena de PC
instalados con distintas versiones de Windows... o simplemente uno con
máquinas virtuales de cada versión.
Para que se usan las
maquinas virtuales
Como seguridad adicional. Al estar aislada del resto, una máquina
virtual te proporciona una seguridad adicional en tareas precisas en las
que quieres estar seguro de que una aplicación no tendrá acceso al
resto de tus datos. Es por eso que se suelen usar para hacer cosas tan
peligrosas como instalar virus y malware para estudiarlos.
Para aprovechar su gran dinamismo. Por su naturaleza las máquinas
virtuales son muy útiles en ocasiones donde necesitas un extremo
dinamismo en el sistema. Puedes guardar estados (copias exactas de
sus datos), ampliarlas, moverlas a un hardware totalmente distinto y
seguirán funcionando sin problemas. Por esto son imprescindibles por
ejemplo en empresas con servidores web que hospedan multitud de
máquinas con las páginas web de sus clientes.