La empresa Siemens lanzamiento del hipervisor libre . El hipervisor es compatible con sistemas x86_64 con extensiones VMX+EPT o SVM+NPT (AMD-V), así como con procesadores ARMv7 y ARMv8/ARM64 con extensiones para virtualización. Además un generador de imágenes para el hipervisor Jailhouse, formado en base a paquetes de Debian para dispositivos compatibles. El código del proyecto bajo la licencia GPLv2.
El hipervisor está implementado como un módulo para el núcleo de Linux y proporciona virtualización a nivel de núcleo. Los componentes para sistemas invitados ya están incluidos en el núcleo principal de Linux. Para gestionar el aislamiento se utilizan los mecanismos de virtualización proporcionados por los CPU modernos. Las características distintivas de Jailhouse son su implementación ligera y su enfoque en la vinculación de máquinas virtuales a un CPU fijo, áreas de RAM y dispositivos de hardware. Este enfoque permite que en un servidor multiprocesador físico funcionen múltiples entornos virtuales independientes, cada uno de los cuales está vinculado a su propio núcleo de procesador.
Con una fuerte vinculación al CPU, los gastos generales del funcionamiento del hipervisor se reducen al mínimo y su implementación se simplifica significativamente, ya que no es necesario realizar un planificador complejo de distribución de recursos; dedicar un núcleo de CPU garantiza que no se ejecuten otras tareas en ese CPU. Una ventaja de este enfoque es la posibilidad de garantizar acceso a los recursos y un rendimiento predecible, lo que hace de Jailhouse una solución adecuada para tareas que se ejecutan en tiempo real. Una desventaja es la limitada escalabilidad, que se encuentra restringida por el número de núcleos de CPU.
En la terminología de Jailhouse, los entornos virtuales se denominan "celdas" (cell, en el contexto de jailhouse). Dentro de una celda, el sistema se presenta como un servidor uniprocesador, mostrando un rendimiento al rendimiento de un núcleo de CPU dedicado. En la celda puede ejecutarse un entorno de cualquier sistema operativo, así como entornos reducidos para ejecutar una sola aplicación o aplicaciones específicamente preparadas para resolver tareas en tiempo real. La configuración se establece en , que definen el entorno de CPU seleccionado, regiones de memoria y puertos de entrada/salida.

En esta nueva versión
- Se añadió soporte para las plataformas Raspberry Pi 4 Model B y Texas Instruments J721E-EVM;
- el dispositivo ivshmem, utilizado para organizar la interacción entre las celdas. Sobre el nuevo ivshmem se puede implementar el transporte para VIRTIO;
- Se ha implementado la posibilidad de desactivar la creación de grandes páginas de memoria (hugepage) para bloquear vulnerabilidades en los procesadores Intel, que permite a un atacante no privilegiado iniciar una denegación de servicio, provocando que el sistema se congele en un estado de 'Error de verificación de máquina';
- Para los sistemas con procesadores ARM64 se ha habilitado el soporte para SMMUv3 (Unidad de Gestión de Memoria del Sistema) y TI PVU (Unidad de Virtualización de Periféricos). Se ha añadido soporte para PCI en entornos aislados que se ejecutan sobre hardware (bare-metal);
- En sistemas x86, para las cámaras raíz se ha implementado la posibilidad de activar el modo CR4.UMIP (Prevención de Instrucciones en Modo Usuario) proporcionado por los procesadores Intel, que permite prohibir la ejecución en el espacio de usuario de ciertas instrucciones, como SGDT, SLDT, SIDT, SMSW y STR, que pueden ser utilizadas en ataques diseñados para elevar privilegios en el sistema.
Fuente: opennet.ru
