martes, 7 de febrero de 2017

MAQUINA VIRTUAL

UNIDAD 1 ARQUITECTURA DE LOS COMPILADORES E INTEPRETES
Unidad de competencia
Determina la estructura general de los compiladores e intérpretes con base en la funcionalidad de sus etapas y fases

Una máquina virtual no es más que un software capaz de cargar en su interior otro sistema operativo haciéndole creer que es un PC de verdad. Tal y como su nombre indica, el concepto es tan sencillo como crear una máquina (PC, consola, móvil o lo que sea) que en vez de ser física es virtual o emulada.

¿Qué es una máquina virtual?
Una vez nos ha quedado claro que una máquina virtual no es realmente ninguna máquina llena de engranajes con un casco de realidad virtual, sino un software, entremos más en detalle sobre qué son las máquinas virtuales.
Lo primero que debes saber es que hay dos tipos de máquinas virtuales diferenciadas por su funcionalidad: las de sistema y las de proceso, si bien la gran mayoría de las veces que oigas hablar de una máquina virtual casi seguro que se estarán refiriendo a las de sistema.

Máquinas virtuales de sistema
Una máquina virtual de sistema es aquella que emula a un ordenador completo. En palabras llanas, es un software que puede hacerse pasar por otro dispositivo -como un PC- de tal modo que puedes ejecutar otro sistema operativo en su interior. Tiene su propio disco duro, memoria, tarjeta gráfica y demás componentes de hardware, aunque todos ellos son virtuales.
Que sus componentes sean virtuales no quiere decir necesariamente que no existan. Por ejemplo, una máquina virtual puede tener unos recursos reservados de 2 GB de RAM y 20 GB de disco duro, que obviamente salen de algún sitio: del PC donde está instalada la máquina virtual, también llamado a veces el hipervisor, el host o el anfitrión. Otros dispositivos podrían realmente ser inexistentes físicamente, como por ejemplo un CD-ROM que en verdad es el contenido de una imagen ISO en vez de un lector de CD de verdad.


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. Suena algo esotérico, pero lo usas cada vez que ejecutas una aplicación basada en Java o basada en .NET Framework.
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.
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.



Para qué se usan las máquinas virtuales
Todo esto está muy bien, pero ¿para qué querría alguien crear un PC virtual dentro de su PC? Aunque así de entrada pudiera parecer una idea algo trivial, la verdad es que las máquinas virtuales tienen una gran variedad de utilidades tanto en el entorno profesional como en el del consumidor final. 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 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.
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

No hay comentarios:

Publicar un comentario