Virtual Machine abstrae el hardware de nuestra computadora personal, como CPU, unidades de disco, memoria, NIC (tarjeta de interfaz de red), etc., en muchos entornos de ejecución diferentes según nuestros requisitos, lo que nos da la sensación de que cada entorno de ejecución es una sola computadora. Por ejemplo, VirtualBox.
Cuando ejecutamos diferentes procesos en un sistema operativo, crea la ilusión de que cada proceso se ejecuta en un procesador diferente que tiene su propia memoria virtual, con la ayuda de técnicas de programación de CPU y memoria virtual. Hay características adicionales de un proceso que no puede proporcionar el hardware solo, como llamadas al sistema y un sistema de archivos. El enfoque de máquina virtual no proporciona estas funcionalidades adicionales, sino que solo proporciona una interfaz que es la misma que el hardware básico. Cada proceso cuenta con una copia virtual del sistema informático subyacente.
Podemos crear una máquina virtual por varias razones, todas las cuales están fundamentalmente relacionadas con la capacidad de compartir el mismo hardware básico pero también puede soportar diferentes entornos de ejecución, es decir, diferentes sistemas operativos simultáneamente.
El principal inconveniente del enfoque de máquina virtual involucra los sistemas de disco. Supongamos que la máquina física tiene solo tres unidades de disco pero quiere admitir siete máquinas virtuales. Obviamente, no puede asignar una unidad de disco a cada máquina virtual, porque el propio software de la máquina virtual necesitará un espacio de disco sustancial para proporcionar memoria virtual y colas. La solución es proporcionar discos virtuales.
Los usuarios reciben así sus propias máquinas virtuales. Después de lo cual pueden ejecutar cualquiera de los sistemas operativos o paquetes de software que están disponibles en la máquina subyacente. El software de la máquina virtual se ocupa de la programación múltiple de múltiples máquinas virtuales en una máquina física, pero no necesita considerar ningún software de soporte al usuario. Esta disposición puede proporcionar una forma útil de dividir el problema de diseñar un sistema interactivo multiusuario en dos partes más pequeñas.
ventajas:
- No hay problemas de protección porque cada máquina virtual está completamente aislada de todas las demás máquinas virtuales.
- La máquina virtual puede proporcionar una arquitectura de conjunto de instrucciones que difiere de las computadoras reales.
- Fácil mantenimiento, disponibilidad y cómoda recuperación.
Desventajas:
- Cuando varias máquinas virtuales se ejecutan simultáneamente en una computadora host, una máquina virtual puede verse afectada por otras máquinas virtuales en ejecución, según la carga de trabajo.
- Las máquinas virtuales no son tan eficientes como las reales a la hora de acceder al hardware.