En informtica una mquina virtual es un software que simula a un
ordenador y puede ejecutar programas como si fuese un ordenador real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una mquina fsica". La acepcin del trmino actualmente incluye a mquinas virtuales que no tienen ninguna equivalencia directa con ningn hardware real.
Una caracterstica esencial de las mquinas virtuales es que los procesos
que ejecutan estn limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".
Uno de los usos domsticos ms extendidos de las mquinas virtuales
es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Windows, por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se des configur el sistema operativo primario. Tipos de mquinas virtuales Las mquinas virtuales se pueden clasificar en dos grandes categoras segn su funcionalidad y su grado de equivalencia a una verdadera mquina.
Mquinas virtuales de sistema (en ingls System Virtual Machine)
Mquinas virtuales de proceso (en ingls Process Virtual Machine)
Maquina virtuales de sistema:
La virtualizacin a nivel sistema operativo permite mucha seguridad para la ejecucin de servidores virtuales y servidores fsicos, compartiendo el mismo sistema operativo, sin embargo, de forma aislada, sin que uno interfiera en la ejecucin en las aplicaciones del otro. La virtualizacin a nivel de sistema operativo es la base de tecnologa de los sistemas de virtualizacin Solaris containers, bsd jails, y Linux server. (Miguel Daro Gonzlez Ros. (2014). tecnologas de virtualizacin. Estados unidos: It campus academy).
Mquinas virtuales de proceso:
Una mquina virtual de proceso, a veces llamada "mquina virtual de aplicacin", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La mquina se inicia automticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando ste finaliza. Su objetivo es el de proporcionar un entorno de ejecucin 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.