Máquina virtual (VM, del inglés virtual machine ) - un sistema de software y/o hardware que emula el hardware de una determinada plataforma (invitado - plataforma invitada) y ejecuta programas para la plataforma invitada en la plataforma anfitriona (anfitrión - plataforma anfitriona, plataforma - host) o virtualizar una determinada plataforma y crear entornos en ella que aíslen los programas e incluso los sistemas operativos entre sí (ver: sandbox ); Véase también la especificación de algún entorno informático (por ejemplo: "máquina virtual del lenguaje de programación C").
La máquina virtual ejecuta algún código independiente de la máquina (por ejemplo , código de bytes , código de subprocesos , código p ) o código de máquina de procesador real . Además del procesador, una VM puede emular el funcionamiento tanto de componentes de hardware individuales como de una computadora real completa (incluyendo BIOS , RAM , disco duro y otros periféricos ). En este último caso, los sistemas operativos se pueden instalar en una máquina virtual, al igual que en una computadora real (por ejemplo, Windows se puede ejecutar en una máquina virtual bajo Linux, o viceversa). Se pueden ejecutar múltiples máquinas virtuales en una sola computadora (esto se puede usar para simular múltiples servidores en un solo servidor real para optimizar el uso de los recursos del servidor).
El concepto de máquina virtual como una colección de recursos que simulan el comportamiento de una máquina real apareció en Cambridge a fines de la década de 1960 como una extensión del concepto de memoria virtual de la computadora Atlas Manchester [1] . En general , el proceso computacional se define en el marco de este concepto por el contenido del espacio de memoria de trabajo al que tiene acceso. Siempre que la situación específica en ese espacio de trabajo sea la esperada, el proceso no tiene forma de determinar si el recurso que se le presenta es realmente un recurso físico de ese tipo, o si es simulado por acciones de otros recursos que resultan en cambios similares a el contenido del espacio de trabajo del proceso.
Por ejemplo, un proceso no puede determinar si está usando el procesador exclusivamente o en modo multiprogramación con otros procesos. En una máquina virtual, ningún proceso puede utilizar exclusivamente ningún recurso, y todos los recursos del sistema se consideran recursos potencialmente compartidos. Además, el uso de máquinas virtuales proporciona desacoplamiento entre múltiples usuarios que trabajan en el mismo sistema informático, proporcionando un cierto nivel de protección de datos.
La idea de una máquina virtual subyace en una serie de sistemas operativos, en particular, IBM VM/CMS (y su clon soviético CBM ) y DEC VAX/VMS .
Las máquinas virtuales se pueden utilizar para:
Algunas máquinas virtuales notables:
Entornos de lenguaje de programación
|
Sistemas operativos e hipervisores | Emuladores de computadora independientes |