Sistemas de máquinas Virtuales

Sistemas Operativos de Máquinas Virtuales

Los Sistemas Operativos de Máquinas Virtuales se caracterizan por tener en su núcleo un componente fundamental conocido como el Monitor de Máquina Virtual.

A continuación, se detalla todo lo relativo a estos sistemas:

  • Concepto Central: El Monitor de Máquina Virtual es el núcleo del sistema, y es el software que se ejecuta directamente sobre el hardware de la computadora.
  • Funcionamiento: Este monitor utiliza la multiprogramación para acceder al hardware, permitiendo que varios procesos (o en este caso, máquinas virtuales) compartan los recursos físicos subyacentes.
  • Máquinas Virtuales: Sobre el Monitor de Máquina Virtual, se implementan las Máquinas Virtuales. Estas máquinas son réplicas lógicas del hardware. Esto significa que una máquina virtual proporciona una abstracción del hardware, incluyendo elementos como registros y caché, que parece ser un sistema físico completo para el software que se ejecuta en ella.
  • Flexibilidad: Una característica importante es que en cada máquina virtual se puede ejecutar un Sistema Operativo con diferentes características. Esto permite una gran versatilidad, ya que se pueden tener múltiples entornos operativos aislados en una única máquina física.
  • Ejemplos:
    • VM/370-CMS: Este es un ejemplo de un Monitor de Máquina Virtual que proporciona una emulación total del hardware.
    • MS-DOS sobre Windows NT-XP: Otro ejemplo es la ejecución de sistemas más antiguos como MS-DOS sobre un sistema operativo moderno como Windows NT-XP, donde el primero emula un procesador 8086.
    • SUN JVM (Java Virtual Machine): Un programa compilado para la Java Virtual Machine genera código que puede implementarse en cualquier sistema operativo para ejecutarse en cualquier hardware. La JVM actúa como esa capa de abstracción, permitiendo la portabilidad del código.

Es importante destacar que el concepto de Memoria Virtual es diferente del de Máquina Virtual. La memoria virtual es una técnica de gestión de memoria que permite a los programas direccionar la memoria lógicamente sin importar la cantidad de memoria principal física disponible, usando el disco como extensión. Por otro lado, un Sistema Operativo de Máquina Virtual se refiere a la capacidad de emular un sistema de hardware completo.

En resumen, los Sistemas Operativos de Máquinas Virtuales, a través de un Monitor de Máquina Virtual, crean entornos operativos aislados y flexibles que pueden replicar el hardware, permitiendo que diferentes sistemas operativos convivan en una única máquina física. Imagina un edificio de apartamentos (la máquina física) donde cada apartamento (máquina virtual) es una casa completa con sus propias reglas y mobiliario (sistema operativo y hardware lógico), todo gestionado por el conserje del edificio (el Monitor de Máquina Virtual) que asigna los recursos del edificio a cada apartamento.

Sistemas Operativos de máquinas virtuales vs. Sistemas de Virtualización

Al Monitor de Máquina Virtual que hemos descrito anteriormente, hoy le llamaríamos hipervisor, y era el núcleo del sistema.

¿Cómo se diferencia esto de la virtualización moderna en servidores
(VMware, KVM, Hyper-V, Xen, etc.), donde también se crean y sirven máquinas virtuales?


1. Punto de partida histórico vs. actual

  • Sistemas de máquinas virtuales (clásicos):
    El Virtual Machine Monitor (VMM) era considerado un sistema operativo en sí mismo. Su única función era dividir la máquina física en múltiples entornos que parecían máquinas reales. Cada máquina virtual recibía el hardware completo “como si fuera suyo”. Ejemplo: VM/370 de IBM.
  • Virtualización en servidores modernos:
    El hipervisor (VMM) puede actuar como un sistema operativo básico (hipervisores tipo 1) o como un programa dentro de otro SO (hipervisores tipo 2). Aquí la virtualización no es solo una curiosidad académica, sino una tecnología de infraestructura clave y actual para consolidar servidores, ofrecer cloud computing, aislamiento, migración en caliente, etc.

2. Estructura del sistema

  • En sistemas de máquinas virtuales “puros”:
    • El VMM está directamente sobre el hardware.
    • Encima, cada máquina virtual puede ejecutar cualquier SO completo.
    • No hay mucho más; el VMM no ofrece servicios de usuario.
  • En servidores actuales:
    • Puede haber un hipervisor bare metal (tipo 1): ej. VMware ESXi, Xen, Hyper-V Server. Se instala “en lugar de” un SO convencional.
    • O un hipervisor hosted (tipo 2): ej. VirtualBox, VMware Workstation, que corre “encima” de un SO anfitrión.
    • El hipervisor moderno incluye utilidades avanzadas: asignación dinámica de CPU/memoria, drivers paravirtualizados, gestión de snapshots, migración en caliente, integración con redes y almacenamiento.

3. Uso de recursos

  • Sistemas de máquinas virtuales:
    Recursos particionados de forma bastante rígida. Cada VM recibe una porción del hardware y funciona como si fuera independiente.
  • Virtualización en servidores:
    Recursos asignados de forma dinámica y flexible. Se pueden sobre-asignar CPUs (overcommit), balancear memoria, migrar máquinas entre nodos físicos, montar redes virtuales.

4. Objetivo principal

  • Sistemas de máquinas virtuales (académicos/históricos):
    • Aislar entornos.
    • Permitir experimentar con distintos sistemas operativos en un mismo mainframe.
    • Facilitar la investigación y compatibilidad retroactiva.
  • Virtualización en servidores:
    • Consolidar varios servidores físicos en menos máquinas → ahorro de costes.
    • Asegurar aislamiento entre servicios en entornos multi-tenant.
    • Alta disponibilidad y escalabilidad en centros de datos y cloud computing.
    • Dar soporte a infraestructura como servicio (IaaS).

5. Ejemplos actuales

  • Máquina virtual en sentido clásico: VM/370, CMS, MS-DOS en modo virtual sobre Windows NT, la JVM como “máquina abstracta”.
  • Virtualización de servidores: VMware vSphere/ESXi, Microsoft Hyper-V, Xen, KVM, Oracle VM.

📊 Resumen comparativo

AspectoSistemas de máquinas virtuales clásicosVirtualización moderna en servidores
NúcleoMonitor de Máquina Virtual (VMM)Hipervisor (tipo 1 o tipo 2)
Función principalSimular hardware completoConsolidar, aislar, escalar servicios
RecursosParticiones fijasDinámicos, sobreasignables
Servicios adicionalesMuy limitadosMigración, snapshots, redes virtuales
Uso típicoInvestigación, compatibilidadCentros de datos, cloud, producción
EjemplosIBM VM/370, MS-DOS en NT, JVMVMware ESXi, Hyper-V, Xen, KVM

🔑 Idea final

El concepto de máquina virtual nació como una abstracción del hardware para investigación y compatibilidad. La virtualización en servidores actual es su evolución práctica, mucho más compleja, que busca optimizar el uso de recursos y ofrecer servicios de infraestructura en entornos de producción.