En informática , la virtualización es una técnica moderna desarrollada a finales de la década de 1990 y es diferente de la simulación y la emulación . La virtualización emplea técnicas que se utilizan para crear instancias de un entorno, a diferencia de la simulación, que modela el entorno; o emulación, que replica el entorno de destino, como ciertos tipos de entornos de máquinas virtuales . La virtualización completa requiere que todas las características destacadas del hardware se reflejen en una de varias máquinas virtuales, incluido el conjunto completo de instrucciones, operaciones de entrada / salida , interrupciones, acceso a la memoria y cualquier otro elemento que utilice el software que se ejecuta en la máquina desnuda., y que está destinado a ejecutarse en una máquina virtual. En un entorno de este tipo, cualquier software capaz de ejecutarse en el hardware sin formato se puede ejecutar en la máquina virtual y, en particular, en cualquier sistema operativo. La prueba obvia de la virtualización completa es si un sistema operativo diseñado para uso independiente puede ejecutarse con éxito dentro de una máquina virtual.
La piedra angular de la virtualización completa o la virtualización de tipo 1 es un hipervisor o supersistema operativo que opera a un nivel de privilegio más alto que el sistema operativo. Este Hypervisor o Super OS requiere dos funciones clave para aprovisionar y proteger entornos virtualizados. Estas dos características son:
- Gestión de almacenamiento independiente del sistema operativo para aprovisionar recursos para todos los entornos virtuales compatibles, como Linux, Microsoft Windows o entornos integrados y para proteger esos entornos del acceso no autorizado y,
- Conmutación de entornos virtualizados para asignar recursos informáticos físicos a entornos virtuales.
Consulte Intel VT-x o AMD-V para obtener una descripción detallada de los niveles de privilegios para los modos de hipervisor, sistema operativo y usuario, VMCS, VM-Exit y VM-Entry. Esta virtualización no debe confundirse con las implementaciones de IBM Virtual Machine de finales de los 60 y principios de los 70, ya que la arquitectura de sistemas de IBM solo admitía dos modos de Supervisor y Programa que no proporcionaban seguridad ni separación de las máquinas virtuales.
Otras formas de virtualización de plataformas permiten que solo se ejecute cierto software o software modificado dentro de una máquina virtual. El concepto de virtualización completa está bien establecido en la literatura, pero no siempre se lo menciona con este término específico; consulte la virtualización de plataformas para conocer la terminología.
Un ejemplo importante de Máquinas Virtuales, que no debe confundirse con la Virtualización implementada por emulación, fue el proporcionado por el programa de control del sistema operativo CP / CMS de IBM . Se demostró por primera vez con el sistema de investigación CP-40 de IBM en 1967, luego se distribuyó a través de código abierto en CP / CMS en 1967-1972 y se volvió a implementar en la familia de máquinas virtuales de IBM desde 1972 hasta el presente. A cada usuario de CP / CMS se le proporcionó una computadora autónoma simulada. Cada una de estas máquinas virtuales tenía las capacidades completas de la máquina subyacente y (para su usuario) la máquina virtual era indistinguible de un sistema privado. Esta simulación fue completa y se basó en el manual Principios de operación para el hardware. Por lo tanto, incluyó elementos tales como un conjunto de instrucciones, memoria principal, interrupciones, excepciones y acceso al dispositivo. El resultado fue una sola máquina que se podía multiplexar entre muchos usuarios.
La virtualización completa solo es posible con la combinación correcta de elementos de hardware y software . Por ejemplo, no fue posible con la mayoría de las series System / 360 de IBM, con la excepción de IBM System / 360-67 ; tampoco fue posible con el sistema System / 370 de IBM . IBM agregó hardware de memoria virtual a la serie System / 370 en 1972, que no es lo mismo que Intel VT-x Rings, lo que proporciona un nivel de privilegio más alto para que Hypervisor controle adecuadamente las máquinas virtuales que requieren acceso completo a los modos Supervisor y Programa o Usuario.
De manera similar, la virtualización completa no fue posible con la plataforma x86 hasta la adición 2005–2006 de las extensiones AMD-V e Intel VT-x (ver virtualización x86 ). [ cita requerida ] Muchos hipervisores de plataforma para la plataforma x86 se acercaron mucho y reclamaron una virtualización completa incluso antes de las adiciones de AMD-V e Intel VT-x. Los ejemplos incluyen Adeos , Mac-on-Linux, Parallels Desktop para Mac , Parallels Workstation , VMware Workstation , VMware Server (anteriormente GSX Server), VirtualBox , Win4BSD y Win4Lin Pro . VMware, por ejemplo, emplea una técnica llamada traducción binaria para modificar automáticamente el software x86 sobre la marcha para reemplazar las instrucciones que "perforan la máquina virtual" con una secuencia de instrucciones diferente y segura para la máquina virtual; esta técnica proporciona la apariencia de una virtualización completa. [1]
Un desafío clave para la virtualización completa es la interceptación y simulación de operaciones privilegiadas, como las instrucciones de E / S. Los efectos de cada operación realizada dentro de una máquina virtual determinada deben mantenerse dentro de esa máquina virtual; no se puede permitir que las operaciones virtuales alteren el estado de ninguna otra máquina virtual, el programa de control o el hardware. Algunas instrucciones de la máquina pueden ser ejecutadas directamente por el hardware, ya que sus efectos están íntegramente contenidos dentro de los elementos gestionados por el programa de control, tales como ubicaciones de memoria y registros aritméticos. Pero otras instrucciones que "perforarían la máquina virtual" no pueden ejecutarse directamente; en cambio, deben ser atrapados y simulados. Dichas instrucciones acceden o afectan la información de estado que está fuera de la máquina virtual.
La virtualización completa ha demostrado ser un gran éxito para:
- compartir un sistema informático entre múltiples usuarios;
- aislar a los usuarios entre sí (y del programa de control);
- emulando nuevo hardware para lograr una mayor confiabilidad, seguridad y productividad.
Ver también
- Comparación de software de virtualización de plataformas
- CP / CMS
- Virtualización asistida por hardware
- Hyperjacking
- Hipervisor
- Virtualización de E / S
- LPAR
- Virtualización a nivel de sistema operativo
- Paravirtualización
- Virtualización de plataforma
- Requisitos de virtualización de Popek y Goldberg
- PR / SM
- Máquina virtual
Referencias
- ^ VMware (11 de septiembre de 2007). "Comprensión de la virtualización completa, la paravirtualización y la asistencia de hardware" (PDF) . VMware . Archivado (PDF) desde el original el 11 de mayo de 2008 . Consultado el 20 de mayo de 2021 .
Consulte las fuentes específicas enumeradas en virtualización de plataforma y (para fuentes históricas) CP / CMS .
enlaces externos
- La compatibilidad no es transparencia: mitos y realidades de detección de VMM