Fundamentos y arquitectura de KVM - Conceptos y terminología

  
 

l KVM: Máquina virtual basada en kernel, Máquina virtual basada en kernel

l VMM: Monitor de máquina virtual, monitor de máquina virtual, en el entorno de virtualización KVM, el kernel KVM.

l VM: Máquina virtual, máquina virtual, es decir, Máquina invitada.

l Virtualización completa: el SO huésped se puede ejecutar sin ningún cambio. Hay dos implementaciones: implementación asistida por software e implementación asistida por hardware.

ü Implementación asistida por software de la virtualización completa: generalmente se utiliza la compresión prioritaria (Compresión de anillo) y la traducción binaria (Traducción binaria). Dado que algunas instrucciones con privilegios deben ejecutarse en el nivel de privilegio Ring0, como LGDT, generalmente el kernel del sistema operativo ejecuta Ring0, por lo que en el entorno virtualizado, VMM no tiene un anillo disponible. El principio general de la compresión de prioridad es hacer que el VMM se ejecute en Ring0, que el kernel del SO invitado se ejecute en Ring1 y que el usuario del SO invitado se ejecute en Ring3. La compresión de prioridad maneja la mayoría de las instrucciones privilegiadas correctamente, pero debido a las vulnerabilidades de virtualización en la arquitectura x86 (no se pueden capturar algunas instrucciones confidenciales), los métodos de traducción binarios se usan para manejar estas vulnerabilidades de virtualización: VMM escanea y modifica el código binario de invitado. Las instrucciones confidenciales que no se pueden capturar se convierten en instrucciones que admiten la virtualización.

ü Implementación asistida por hardware de la virtualización completa: confiando en las características de virtualización del hardware (como Intel VT-x), la idea básica es: agregar suficientes funciones de virtualización en la arquitectura del hardware, para que pueda interceptar al Invitado Todas las instrucciones sensibles en el sistema operativo y simulado.

l Paravirtualización: el sistema operativo invitado debe modificarse para reemplazar las instrucciones confidenciales que no se pueden "ajustar" para resolver la captura de instrucciones confidenciales.

l VT-x: Intel proporciona tecnología VT-x (Virtualización Intel para x86) para la virtualización de la CPU (AMD SVM también proporciona una funcionalidad similar), VT-x introduce un nuevo modo de trabajo VMX (Virtual Machine eXtension), la CPU en este modo tiene dos modos de operación: modo raíz (operación raíz VMX) y modo no raíz (operación no root VMX). En cada modo de operación, hay un Ring0-Ring3 separado.

ü VMM se ejecuta en modo raíz. Para el entorno de virtualización KVM, el host KVM se ejecuta en el modo raíz. El kernel en el host se ejecuta en Ring0 en el modo raíz y el programa de modo de usuario en el host (como Qemu) -kvm) Run3 ejecutándose en modo root.

ü Guest se ejecuta en modo no root, el núcleo en Guest se ejecuta en Ring0 en modo no root, y el programa en modo de usuario en Guest3 se ejecuta en Ring3 en modo no root.

Además, VT-x presenta un nuevo conjunto de instrucciones, que incluyen VMLAUNCH /VMRESUME (para iniciar VM-Entry), VMREAD /VMWRITE (para configurar VMCS), y más.

l VM-Exit /VM-Entry: en el entorno VT-x, en modo no root (es decir, en el Invitado), la ejecución de comandos sensibles activa "snap", llamada VM-Exit. Cuando se produce VM-Exit, la CPU cambia automáticamente del modo no root al modo root, y luego el VMM puede procesar o simular aún más las instrucciones confidenciales que activan VM-Exit.

La VM-Entry corresponde a VM-Entry. Esta operación la inicia VMM. Por lo general, es causada por la VMM que programa un tiempo de ejecución de Guest (o VCPU). En este momento, la CPU cambia automáticamente del modo raíz al modo no root. .

l VMCS: En el entorno VT-x, se introdujo VMCS (Estructura de control de máquina virtual) para admitir mejor la virtualización de CPU. El VMCS se usa para guardar el estado relevante requerido por la CPU virtual, como el valor del registro de la CPU en el modo raíz y el modo no raíz, la razón de la salida de VM, etc. Cuando la CPU genera la salida de VM y la entrada de VM, automáticamente consulta y Para actualizar VMCS, VMM también puede controlar el comportamiento de la CPU mediante la configuración de VMCS.

Copyright © Conocimiento de Windows All Rights Reserved