lunes, 14 de octubre de 2013

¿Qué es una maquina virtual?

En muchas ocasiones surge la necesidad de probar un programa o realizar pruebas en otro sistema operativo distinto al instalado.Cual es la solución ¿formatear el equipo e instalar este sistema operativo?. ¿Crear una partición e instalarlo?. ¿Buscar otro equipo en el que sí esté instalado?. La solución es mucho mas sencilla que todo esto: lo único que hay que hacer es instalar una herramienta que emule el sistema operativo que se quiere probar, así no hay necesidad de formatear ni de cambiar de equipo. El sistema operativo emulado debería ser totalmente independiente del sistema operativo real, conviviendo ambos en total armonía y pudiendo pasar de uno a otro con facilidad.
Lo anterior se consigue mediante el uso de las máquinas virtuales. Una máquina virtual es un programa informático que crea un entorno virtual entre el sistema operativo y el hardware para que el usuario final pueda ejecutar aplicaciones en una máquina abstracta. Por decirlo de manera más sencilla, una máquina virtual es una aplicación que simula el funcionamiento de una máquina real sobre la que se pueden instalar sistemas operativos, aplicaciones, navegar de forma segura, imprimir desde alguna aplicación, usar los dispositivos USB, etc.
Se pueden encontrar varios tipos de máquinas virtuales:
  • Máquinas virtuales software: este tipo de máquinas virtuales se sitúan por encima del sistema operativo y tratan de aislar a las aplicaciones del entorno sobre el que se ejecutan. Proporcionan una capa entre l??) z??????? y Str = dÍas aplicaciones y el sistema operativo que captura todas las llamadas al sistema y las traduce al sistema concreto de ejecución. La máquina virtual de Java o la máquina virtual del entorno .NET son dos claros ejemplos de máquinas virtuales software.
  • Entornos virtuales: este tipo de máquinas se crean para ejecutar directamente aplicaciones que necesitan un entorno determinado de ejecución sobre otro entorno totalmente diferente.
  • Maquinas virtuales hardware: este tipo de aplicaciones tratan de emular directamente el hardware. Las llamadas al hardware del sistema operativo instalado serán capturadas y convertidas en llamadas al sistema del hardware emulado. En general, la emulación del hardware recibe el nombre de virtualización. Al emularse directamente el hardware, el usuario tiene la impresión de que la máquina sobre la que está trabajando es totalmente independiente. Este tipo de máquinas virtuales serán el objeto del presente monográfico y a partir de ahora nos centraremos en ellas.

El uso de software de virtualización permite ejecutar varias máquinas virtuales con distintos sistemas operativos sobre el mismo hardware de manera simultánea. Además estas máquinas virtuales se pueden copiar y mover a otra máquina física de manera muy sencilla, lo que proporciona una manera rápida y cómoda de hacer backups o de reutilizar máquinas existentes. Las máquinas virtuales tienen discos duros virtuales que para la máquina anfitriona (es decir, para la máquina real) son simplemente ficheros de datos que se pueden copiar y manejar. La propia máquina virtual no es mas que un fichero de configuración.
Además existen en Internet muchas máquinas virtuales listas para ser ejecutadas y que permiten tener un entorno de desarrollo web en muy pocos minutos: Linux con Apache, PHP y mySQL instalado y configurado de manera directa, o bien una solución wiki lista para ser usada simplemente descargando una máquina virtual.

Arquitectura de Máquinas Virtuales



La arquitectura de máquinas virtuales se ha llamado también intérpretes basados en tablas. De hecho, todo intérprete involucra una máquina virtual implementada en software. Se puede decir que un intérprete incluye un seudo-programa a interpretar y una máquina de interpretación. El seudo-programa a su vez incluye el programa mismo y el análogo que hace el intérprete de su estado de ejecución (o registro de activación). La máquina de interpretación incluye tanto la definición del intérprete como el estado actual de su ejecución. De este modo, un intérprete posee por lo general cuatro componentes:

1.-  Una máquina de interpretación que lleva a cabo la tarea
 2.-  Una memoria que contiene el seudo-código a interpretar.
3.-  Una representación del estado de control de la máquina de interpretación.
4.-  Una representación del estado actual del programa que se simula.

El estilo comprende básicamente dos formas o sub-estilos, que se han llamado intérpretes y sistemas basados en reglas. Ambas variedades abarcan, sin duda, un extenso espectro que va desde los llamados lenguajes de alto nivel hasta los paradigmas declarativos no secuenciales de programación, que todo el mundo sabe que implementan un proxy (una especie de nivel de impostura) que encubren al usuario operaciones que en última instancia se resuelven en instrucciones de máquinas afines al paradigma secuencial imperativo de siempre.

El estilo es su conjunto se utiliza habitualmente para construir máquinas virtuales que reducen el vacío que media entre el engine de computación  esperado por la semántica del programa y el engine físicamente disponible. Las aplicaciones inscriptas en este estilo simulan funcionalidades no nativas al hardware y software en que se implementan, o capacidades que exceden a (o que no coinciden con) las capacidades del paradigma de programación que se está implementando. Dado que hasta cierto punto las máquinas virtuales no son una opción sino que devienen inevtiables en ciertos contextos, nadie se ha entretenido identificando sus ventajas y deméritos.

Las máquinas virtuales no son una invención reciente ligada a Java, sino que existen desde muy antiguo. En la década de 1950, los precursores de los ingenieros de software sugirieron una máquina virtual basada en un lenguaje de máquina universal de bytecodes (un ejemplo fue UNCOL), de manera que las aplicaciones podían escribirse en las capas más altas y ejecutarse donde fuere sin tener que recompilarse, siempre que hubiera una máquina virtual entre el programa por un lado y el sistema operativo y la máquina real por el otro. En 1968 Alan Kay implementó una máquina virtual vinculada a un sistema orientado a objetos y luego participó con Dan Ingalls en el desarrollo de la MV de Smalltalk hacia 1972. Numerosos lenguajes y ambientes de scripting utilizan máquinas virtuales: Perl, Javascript, Windows Script Host (WSH), Python, PHP, Pascal. WSH, por ejemplo, tolera programación en casi cualquier lenguaje de scripting que se atenga a ciertas especificaciones simples.

En la nueva estrategia arquitectónica de Microsoft la máquina virtual por excelencia guarda relación con el Common Language Runtime, acaso unas de las dos piezas esenciales del framework .NET (la otra es la biblioteca de clases). El CLR admite, en efecto, diversos paradigmas puros y templados: programación funcional (Lisp, Scheme, F#, Haskell), programación imperativa orientada a objetos (C#, J#, C++, Python) y estructurada en bloques (Oberon), ambientes de objetos puros (Smallscript / Smalltalk), programación lógica declarativa (Prolog, P#), diseño basado en contratos (Eiffel), modelado matemático (Fortran), scripting interpretado (Perl), meta-programación (SML, Mondrian), programación cercana a la semántica de negocios (Cobol), programación centrada en reportes (Visual ASNA RPG), además de todos los matices y composiciones heterogéneas a que haya lugar. Si bien el lenguaje final de implementación se encuentra en un punto del proceso bastante alejado de la ideación arquitectónica en que se despliegan los estilos, el efecto de la disponibilidad de estas capacidades en el diseño inicial de un sistema no es para nada trivial. Con una máquina virtual común el proceso evita la redundancia de motores compitiendo por recursos y unifica debuggers y profilers.

La congruencia entre la naturaleza semántica y sintáctica del modelo y la de los lenguajes de programación concretos ha sido, después de todo, una de las banderas del modelado orientado a objetos, desde OMT hasta UML, pasando por el modelado no sólo de las aplicaciones sino de las bases de datos.

  •  Estilos heterogéneos
    • Sistemas de control de procesos: Desde el punto de vista arquitectónico, mientras casi todos los demás estilos se pueden definir en función de componentes y conectores, los sistemas de control de procesos se caracterizan no sólo por los tipos de componentes, sino por las relaciones que mantienen entre ellos. El objetivo de un sistema de esta clase es mantener ciertos valores dentro de ciertos rangos especificados, llamados puntos fijos o valores de calibración; el caso más clásico es el de los termostatos. Existen mecanismos tanto de retroalimentación (feedback) como de prealimentación(feedforward), y tanto reductores de oscilación como amplificadores; pero el tipo de retroalimentación negativa es el más común. En uno de los pocos tratamientos arquitectónicos de esta clase de modelos cibernéticos, Shaw y Garlan recomiendan separar los tres elementos del bucle de control (mecanismos para cambiar los valores de variables y algoritmos de control, elementos de datos; esquema del bucle). La ventaja señalada para este estilo radica en su elasticidad ante perturbaciones externas [SG96].

  • Retroalimentación «Feed-back

    • Esquematizacion de feedback: En la teoría de sistemas, en cibernética y en la teoría de control, entre otras disciplinas, la retroalimentación, cuyo término correcto es realimentación (en inglés feedback) es un mecanismo de control de los sistemas dinámicos por el cual una cierta proporción de la señal de salida se redirige a la entrada, y así regula su comportamiento. El feedback también está presente en numerosos espacios tecnológicos. En este sentido, gran parte de los aparatos y máquinas que utilizamos en nuestra vida cotidiana funcionan a través del sistema de feedback ya que suponen el intercambio y traspaso permanente de datos (de cualquier tipo). Un ejemplo claro de esta situación es la conexión a internet que, además de contar con un espacio virtual, necesita de un soporte técnico y físico a través del cual se mandan y reciben permanentemente datos de diverso tipo. Esta conexión, en este caso particular, se puede realizar a través de cables de fibra óptica que son los responsables de llevar y traer la información necesaria.1 Los ejemplos de la realimentación se pueden encontrar en la mayoría de los sistemas complejos, tales como ingeniería, arquitectura, economía, y biología y tiene su base en el proceso administrativo donde, el control es una etapa cualitativa y cuantitativa, que sirve de base para la fase de planeación. Arturo Rosenblueth, investigador mexicano y médico en cuya obra llamada “Behavior, Purpose and Teleology“ ("comportamiento, propósito y teleología"), de acuerdo con Norbert Wiener, fijó las bases para la nueva ciencia de la cibernética y propuso que el comportamiento controlado por la realimentación negativa, aplicada a un animal, al ser humano o a las máquinas era un principio determinante y directivo, en la naturaleza o en las creaciones humanas.
  • Lazo abierto y cerrado
Existen dos tipos de sistemas principalmente. Los no realimentados o de lazo abierto y los realimentados o de lazo cerrado.

    •  El lazo cerrado: Funciona de tal manera que hace que el sistema se realimente, es decir que la salida vuelve al principio para que analice la diferencia y en una segunda opción ajuste más, así hasta que el error es 0. Cualquier concepto básico que tenga como naturaleza una cantidad controlada como por ejemplo temperatura, velocidad, presión, caudal, fuerza, posición, cuplas, etc. son parámetros de control de lazo cerrado.

    • El Lazo abierto: Los sistemas de lazo abierto no se comparan a la variable controlada con una entrada de referencia. Cada ajuste de entrada determina una posición de funcionamiento fijo en los elementos de control.

  • Re alimentación Negativa: Es la más utilizada en sistemas de control Se dice que un sistema está realimentado negativamente cuando tiende a estabilizarse, es decir cuando nos vamos acercando a la orden de consigna hasta llegar a ella.
    • Ejemplos
      • Un automóvil conducido por una persona en principio es un sistema realimentado negativamente; ya que si la velocidad excede la deseada, como por ejemplo en una bajada, se reduce la presión sobre el pedal, y si es inferior a ella, como por ejemplo en una subida, aumenta la presión, aumentando por lo tanto la velocidad del automóvil.
      • Un sistema de calefacción está realimentado negativamente, ya que si la temperatura excede la deseada la calefacción se apagará o bajará de potencia, mientras que si no la alcanza aumentará de fuerza o seguirá funcionando.

  • Realimentación positiva: Es un mecanismo de realimentación por el cual una variación en la salida produce un efecto dentro del sistema, que refuerza esa tasa de cambio. Por lo general esto hace que el sistema no llegue a un punto de equilibrio sino más bien a uno de saturación. Es un estímulo constante.
    • Ejemplos
      • En un sistema electrónico. Los dispositivos semiconductores conducen mejor la corriente cuanto mayor sea su temperatura. Si éstos se calientan en exceso, conducirán mejor, por lo que la corriente que los atraviese será mayor porque se seguirán calentando hasta su destrucción si no se evita con algún otro dispositivo que límite o impida el paso de corriente.
      • Si intercambiamos conectándose una caldera de calefacción a un sistema preparado para aire acondicionado (frío), cuando la temperatura suba, el sistema intentará bajarla (se activará) a fin de llegar a la temperatura de consigna, que es más baja, pero encenderá la caldera en lugar del aire acondicionado, por lo que la temperatura subirá aún más en vez de estabilizarse, lo que volverá a provocar que la caldera siga funcionando cada vez con más fuerza.

Herramientas de virtualización más conocidas

Existen diversas soluciones de virtualización disponibles actualmente, tanto gratuitas como de pago. Las más conocidas son las siguientes:
  • Bochs: un emulador de procesadores x86 y AMD64 con licencia de software abierto. Bochs puede ejecutarse en distintos sistemas operativos, incluyendo Linux, Windows o incluso la XBox. Puede además simular varios sistemas operativos como DOS, Windows o Linux.
  • Microsoft Virtual PC: suite de virtualización de Microsot para Windows y para MacOS. VirtualPC emula un PC estándar y todo el hardware asociado.
  • Parallels Workstation: software de virtualización de la empresa Parallels Incorporation para procesadores Intel x86.
  • QEMU: aplicación de software libre que implementa un emulador de procesador y que incluye un acelerador que permite incrementar la velocidad de las máquinas virtuales.
  • Virtual Iron: otra aplicación de virtualización que ha sido de las primeras en aprovechar las capacidades específicas de virtualización de los nuevos procesadores Intel y AMD.
  • VMWare : una completo conjunto de aplicaciones de virtualización, con herramientas de pago orientadas a la empresa y otras gratuitas más orientadas al uso personal. Hasta hace poco tiempo solo se ofrecía de manera gratuita la aplicación VMWare Player, que permitía ejecutar distintas máquinas virtuales ya creadas y que se podían descargar desde Internet. Desde fechas recientes se ofrece también de manera gratuita VMWare Server, que permite no sólo ejecutar máquinas ya creadas sino crear las máquinas desde el comienzo./li>
  • Xen: Una herramienta muy usada en la comunidad Linux puesto que hasta hace poco tiempo sólo podía usar Linux/Unix como sistema anfitrión. Con la versión Xen 3.0 ya se puede instalar en Windows.
  • VirtualBox: una herramienta para Windows y para Linux (la versión para MAC actualmente está en desarrollo en fase pre-alfa) liberada bajo licencia GPL y con un rendimiento similar al de otras aplicaciones como VirtualPC o VMWare.
QEMU, VMWare y Microsoft Virtual PC son las tres herramientas mas utilizadas. Por ello y por ser distribuidas de forma gratuita el monográfico se centrará en ellas. Además se ha incluido VirtualBox porque es de código abierto y permite estudiar su código en caso de estar interesado.

Utilidades y usos más frecuentes de las máquinas virtuales

¿Para qué se pueden usar las máquinas virtuales?. La capacidad de aprovechar al máximo el hardware disponible ofrece una gran cantidad de posibilidades a nivel empresarial y a nivel doméstico. A continuación se detallan algunos de los usos más frecuentes que se le puede dar al software de virtualización:
  • Consolidación de servidores: convertir muchos servidores físicos en virtuales. De este modo se aprovecha el hardware disponible de la mejor manera posible.
  • Recuperación ante desastres: las máquinas virtuales se pueden salvar muy fácilmente, y además su estado se puede almacenar, por lo que en caso de desastre se puede recuperar la información con rapidez.
  • Pruebas de aplicaciones: en muchas ocasiones se necesita un entorno limpio para probar una aplicación. Usar una máquina virtual permite instalar un sistema operativo desde cero, probar la aplicación y luego eliminar la máquina.
  • Ejecución de entornos completos sin instalación ni configuración: la posibilidad de descargar máquinas virtuales desde Internet permite ahorrar tiempo en instalaciones y configuraciones. Existen muchas máquinas virtuales con servidores LAMP (Linux, Apache, mySQL y PHP) completos listos para ser usados, máquinas con gestores de contenidos, wikis, etc., gratuitos y funcionales desde el primer momento.
  • Aplicaciones portátiles: con el uso de las máquinas virtuales se pueden tener PCs completos listos para usar en dispositivos USB, lo que puede ser de mucha utilidad para tener un entorno privado y usarlo en cualquier PC.

Comparativa de herramientas de virtualización

A continuación se presenta una comparativa de tres de los productos de virtualización comentados: VirtualBox, VMWare Server y Virtual PC 2007.
Característica
Explicación 

Facilidad de instalación.


Los tres productos se instalan de manera muy sencilla mediante un asistente VirtualBox y Virtual PC se instalan rápidamente. Sin embargo, VMWare server tarda bastante tiempo en instalarse y dependiendo de la máquina puede llegar a tardar más de media hora.

Sistemas operativos anfitriones soportados.
VirtualBox: Windows, Linux
VMWare server: Windows, Linux
Virtual PC 2007: Windows, MacOS
      
Sistemas operativos invitados soportados.
VirtualBox: DOS, Windows, Linux, OS/2, OpenBSD, FreeBSD, Netware, Solaris.
VMWare server: DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances.
Virtual PC 2007: DOS, Windows, OS/2

Soporte para USB
VirtualBox: Sí.
VMWare server: Sí.
Virtual PC 2007: No.


Facilidad de creación de máquinas virtuales.
VirtualBox: Fácil.
VMWare server: Fácil.
Virtual PC 2007: Fácil.

Existencia de máquinas virtuales disponibles en Internet.
VMWare server dispone de las llamadas Virtual Appliances, que son máquinas virtuales preconfiguradas y listas para ser usadas. En Internet se pueden encontrar muchas y de muchos tipos.

Integración con el sistema operativo anfitrión: display, carpetas compartidas, drag&drop.
Los tres sistemas disponen de herramientas que permiten mejorar la integración del sistema invitado con el anfitrión una vez instalado. En el caso de VMWare, se llaman VMWare Tools, y en el caso de Virtual PC, Virtual Machine additions. Tanto VMWare como VirtualPC permiten usar drag&drop y carpetas compartidas con el sistema anfitrión.

Capacidad de importar máquinas creadas con otras herramientas.
VMWare server es capaz de importar máquinas   creadas con Virtual PC.

Rendimiento.
VirtualBox: Muy bueno.
VMWare server: Muy bueno.
Virtual PC 2007: Muy bueno si se le instalan las Virtual Machine Additions..

En resumen, se podría afirmar que las tres aplicaciones son buenas soluciones de virtualización. Probablemente la balanza se inclina por VMWare server por la existencia de máquinas virtuales disponibles en Internet que agilizan el uso de las máquinas virtuales y por la cantidad de información que existe sobre ella en la red. Además Virtual PC 2007 es una herramienta que no podrá ser usada por los usuarios de Linux, mientras que las otras dos están disponibles en versiones para Windows y para Linux.

Utilización de otros sistemas operativos


La principal utilidad de las máquinas virtuales es la utilización de otros sistemas operativos distintos al sistema operativo de nuestro PC real, de forma simultánea. Una máquina virtual, a efectos prácticos es como una simulación de un PC en el que podemos instalar el sistema operativo que deseemos: Windows XP, Windows 2003,2008,2012 Server Window 7 y 8, o cualquier distribución de Linux como Debian, Ubuntu, Fedora, Mandriva, Linex, Guadalinex, Lliurex, MolinuX, MAX, entre otros.


  • Con máquinas virtuales es fácil utilizar otro sistema operativo
A menudo, se suelen crear diferentes particiones en los discos duros de los PCs, para poder instalar varios sistemas operativos y así arrancar un sistema u otro según nuestras necesidades. Con esta tecnología, ya no es necesario por que podemos arrancar siempre nuestro sistema operativo y disponer de otros sistemas operativos en máquinas virtuales, lo cual es mucho más ventajoso ya que no implica reiniciar el PC.


Si el sistema operativo que hemos instalado en nuestro PC real es Windows, existe la posibilidad de crear una máquina virtual e instalar en ella nuestra distribución de Linux favorita. De igual forma, si el sistema operativo que hemos instalado en nuestro PC real es Linux, existe la posibilidad de crear una máquina virtual e instalar en ella la versión de Windows que necesitemos.

Esto nos permitirá utilizar aplicaciones que sólo corren bajo un sistema operativo que no es el nuestro, sin necesidad de tener que reiniciar el PC con el otro sistema operativo.

Una utilidad interesantes de las máquinas virtuales en sistemas Windows es disponer de un servidor X-Windows para realizar conexiones gráficas remotas a sistemas Linux. Aunque disponemos de aplicaciones como cygwin que permiten disfrutar de un servidor X bajo Windows, quizás sea más apropiado instalar un sistema Linux en una máquina virtual y desde él, realizar las conexiones pertinentes por ssh a otros sistemas Linux.

Otra aplicación interesante de las máquinas virtuales bajo Linux, es la posibilidad de disponer de Windows en un sistema virtual para correr aplicaciones de gestión que solo funcionan bajo este sistema, como Abies, Gece2000 y otras.

Además, las máquinas virtuales no se suelen apagar, sino que lo normal es suspenderlas que es mucho más rápido. Si disponemos de un PC de los actuales, poner en marcha una máquina virtual que está suspendida, es cuestión de dos o tres segundos.




Menor Mantenimiento de los Pcs

En las aulas de informática, uno de los mayores problemas existentes es el mantenimiento de los PCs. Al ser utilizadas por muchos alumnos que hacen un uso muy variado de los PCs, es frecuente que, debido a la instalación de diferentes aplicaciones y cambios en las configuraciones, los PCs dejen de funcionar para los próximos alumnos que los van a utilizar, causando una pérdida de tiempo en la clase.


En lugar de utilizar los PCs reales, una alternativa en un aula es utilizar siempre máquinas virtuales a pantalla completa. Esto es posible ya que cuando el PC real tiene suficiente memoria, las máquinas virtuales van a una velocidad similar a la del PC real.

La gran ventaja de este sistema es el mantenimiento del PC. Si el usuario daña el PC virtual porque ha cambiado algo en la configuración o ha instalado algún programa perjudicial, con restaurar de nuevo la máquina virtual, todo volverá a funcionar pasados unos segundos.

Un problema es que el usuario pulse sin querer la combinación de teclas que ceden el control del PC virtual al PC real. En Vmware, ésto ocurre al pulsar simultáneamente Ctrl + Supr. Si esta circunstancia se da muy a menudo, existe la posibilidad de cambiar dicha combinación de teclas por otra más complicada.

  • PCs del aula muy protegidos
Cuando un PC es utilizado por diferentes personas, los administradores, hartos de realizar labores de mantenimiento de los mismos, toman medidas drásticas como la congelación de los discos duros mediante tarjetas protectoras de disco, o la reducción de permisos al mínimo, limitando las posibilidades de utilización del PC por parte del alumno. La ventaja de proteger tanto los PCs es que se reducen de manera notable los trabajos de mantenimiento, porque rara vez los PCs dejan de funcionar. La desventaja principal es la limitación del uso de los PCs ya que los alumnos no podrán instalar aplicaciones o realizar cambios en la configuración cuando sea necesario.

Cuando un PC está muy protegido, el mantenimiento se reduce, pero es poco práctico.La utilización mixta de máquinas virtuales junto con las medidas de protección de los PCs reales como la congelación de los discos duros o la limitación de permisos, permitirá disfrutar de las ventajas de ambas tecnologías: bajo mantenimiento del PC real y utilización funcional del PC virtual.

Ejemplo 1: Supongamos que en una clase de informática tenemos los PCs protegidos y la contraseña del alumno es de usuario sin privilegios. Si se necesitan realizar actividades peligrosas como instalación de sistemas operativos, realización de particiones del disco duro, cambios de configuración de hardware, cambios en la configuración de red, etc... los alumnos no podrán realizar las actividades en el PC real porque no son administradores, pero podrían realizar dichas actividades en una máquina virtual quedando intacta la máquina real y así no perjudicar al próximo alumno que utilice el PC.



En la máquina virtual seremos administradores y tendremos control total

Ejemplo 2: Supongamos que tenemos la partición C: del sistema protegida con un congelador como Deep Freeze o un congelador por hardware, y otra partición E: sin congelar. Podríamos almacenar la máquina virtual en la partición E: y así el alumno podría instalar sus programas en dicha máquina virtual, de esta forma no habría que estar congelando y descongelando continuamente la partición del sistema para instalar las aplicaciones necesarias. La máquina real no sufriría cambios y funcionará perfectamente para el próximo alumno.



Al estar congelada la partición del sistema, el PC nunca fallará

  • Disco no persistente
Cuando en un aula se utilizan máquinas virtuales para proteger la máquina real y así reducir las tareas de mantenimiento, puede darse el caso que los alumnos estén continuamente enredando en la máquina virtual y tengamos que estar continuamente restaurando una máquina virtual original. Para evitar ésto, se puede configurar el disco duro de la máquina virtual como disco no persistente (Non persistent disk) que significa que los cambios que se realizan en el disco duro virtual durante la utilización del mismo, se realizan sobre unos archivos temporales que se descartan la próxima vez que reiniciemos la máquina virtual.

Utilizar discos virtuales no persistentes es equivalente a congelar la máquina virtual, pero sin necesidad de adquirir un congelador ya que es una característica de las aplicaciones de máquinas virtuales.

Esta opción es interesante también cuando tenemos prácticas con varios grupos y queremos que cuando se reinicie el PC, se descarten los cambios realizados por los anteriores alumnos y así tener el PC preparado para el siguiente grupo.

Un disco virtual se puede cambiar de 'persistente' a 'no persistente' en cualquier momento, sin necesidad de reiniciar el PC real.