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