Société Siemens version gratuite d'hyperviseur . L'hyperviseur fonctionne sur des systèmes x86_64 avec les extensions VMX+EPT ou SVM+NPT (AMD-V), ainsi que sur les processeurs ARMv7 et ARMv8/ARM64 avec des extensions de virtualisation. En outre générateur d'images pour l'hyperviseur Jailhouse, formées à partir de paquets Debian pour les dispositifs pris en charge. Le code du projet sous licence GPLv2.
L'hyperviseur est implémenté sous la forme d'un module pour le noyau Linux et assure la virtualisation au niveau du noyau. Les composants pour les systèmes invités sont déjà inclus dans le noyau principal de Linux. Pour gérer l'isolation, les mécanismes matériels de virtualisation fournis par des CPU modernes sont utilisés. Les caractéristiques distinctives de Jailhouse sont sa mise en œuvre légère et son orientation vers l'attribution de machines virtuelles à un CPU fixe, des zones de RAM et des dispositifs matériels. Cette approche permet d'exécuter plusieurs environnements virtuels indépendants sur un serveur multiprocesseur physique, chacun étant assigné à son cœur de processeur.
Avec une attribution stricte au CPU, les frais généraux du fonctionnement de l'hyperviseur sont minimisés et sa mise en œuvre est considérablement simplifiée, car il n'est pas nécessaire d'exécuter un planificateur complexe de distribution des ressources — la répartition d'un noyau de CPU garanti l'absence d'exécution d'autres tâches sur ce CPU. Un avantage de cette approche est la possibilité d'assurer un accès garanti aux ressources et une performance prévisible, ce qui rend Jailhouse une solution adaptée pour créer des tâches exécutées en temps réel. Le principal inconvénient est la scalabilité limitée, qui dépend du nombre de cœurs CPU.
Dans la terminologie de Jailhouse, les environnements virtuels sont appelés « cellules » (cell, dans le contexte de Jailhouse). À l'intérieur de la cellule, le système fonctionne comme un serveur à processeur unique, montrant une performance de la performance d'un cœur CPU dédié. Dans la cellule, il est possible d'exécuter un environnement de n'importe quel système d'exploitation, ainsi que des environnements réduits pour exécuter une seule application ou des applications spécifiquement préparées pour résoudre des tâches en temps réel. La configuration est définie dans , définissant les CPU alloués à l'environnement, les régions de mémoire et les ports d'entrée/sortie.

Dans cette nouvelle version
- Support added for Marvell MACCHIATObin, Xilinx Ultra96 platforms,
Microsys miriac SBC-LS1046A, and Texas Instruments AM654 IDK; - Kernel-level statistics added for each CPU core;
- Ensured PCI device reset on camera shutdown;
- Device Tree structure adapted for the latest Linux kernel releases;
- For ARM and ARM64 platforms, protection against Spectre v2 attacks has been added. The latest QEMU releases have been considered in the qemu-arm64 settings. Issues with firmware PSCI overwriting on Orange Pi Zero boards have been resolved;
- For the x86 platform, when launching demonstration environments (inmates), the use of SSE and AVX instructions has been enabled, and an exception report has been added.
Future plans include the long-awaited support for IOMMUv3, enhanced efficiency in CPU cache usage (), resolving APIC issues on AMD Ryzen processors, reworking the ivshmem device, and progressing drivers into the main kernel.
Source : opennet.ru
