Azienda Siemens rilascio del hypervisor open source . Il hypervisor supporta il funzionamento su sistemi x86_64 con estensioni VMX+EPT o SVM+NPT (AMD-V), così come su processori ARMv7 e ARMv8/ARM64 con estensioni per la virtualizzazione. Separatamente generatore di immagini per il hypervisor Jailhouse, creato sulla base di pacchetti Debian per i dispositivi supportati. Il codice del progetto è sotto licenza GPLv2.
Il hypervisor è implementato come un modulo per il kernel Linux e fornisce virtualizzazione a livello di kernel. I componenti per i sistemi guest sono già inclusi nel kernel principale di Linux. Per gestire l'isolamento vengono utilizzati i meccanismi hardware di virtualizzazione forniti dai CPU moderni. Le caratteristiche distintive di Jailhouse sono una realizzazione leggera e un orientamento verso il vincolo delle macchine virtuali a CPU fisse, aree di RAM e dispositivi hardware. Questo approccio consente di garantire su un server multi-processore fisico il funzionamento di più ambienti virtuali indipendenti, ognuno dei quali è vincolato al proprio core di processore.
Con il rigido vincolo alla CPU, i costi generali del funzionamento del hypervisor sono ridotti al minimo e la sua implementazione è notevolmente semplificata, poiché non è necessario eseguire un complesso pianificatore di distribuzione delle risorse: l'assegnazione di un core CPU separato garantisce l'assenza di esecuzione su quella CPU di altri compiti. Un vantaggio di questo approccio è la possibilità di garantire l'accesso alle risorse e prestazioni prevedibili, il che rende Jailhouse una soluzione adatta per la creazione di compiti eseguiti in tempo reale. Uno svantaggio è la limitata scalabilità, che dipende dal numero di core CPU.
Nella terminologia di Jailhouse, gli ambienti virtuali sono chiamati «celle» (cell, nel contesto di jailhouse). All'interno della cella, il sistema appare come un server a singolo processore, mostrando prestazioni alle prestazioni di un core CPU dedicato. All'interno della cella può essere eseguito un ambiente di qualsiasi sistema operativo, nonché ambienti ridotti per eseguire un'unica applicazione o applicazioni appositamente preparate, destinate a risolvere compiti in tempo reale. La configurazione è definita nei , che definiscono i CPU, le aree di memoria e le porte di input/output assegnate all'ambiente.

Nel nuovo rilascio
- Supporto aggiunto per le piattaforme Raspberry Pi 4 Model B e Texas Instruments J721E-EVM;
- il dispositivo ivshmem, utilizzato per facilitare l'interazione tra le celle. Sopra il nuovo ivshmem può essere implementato un trasporto per VIRTIO;
- È stata implementata la possibilità di disabilitare la creazione di grandi pagine di memoria (hugepage) per bloccare una vulnerabilità nei processori Intel, che consente a un attaccante non privilegiato di avviare un'interruzione del servizio, portando il sistema a bloccarsi nello stato 'Machine Check Error';
- Per i sistemi con processori ARM64 è stata implementata la compatibilità con SMMUv3 (System Memory Management Unit) e TI PVU (Peripheral Virtualization Unit). Per ambienti isolati che girano su hardware (bare-metal), è stata aggiunta la compatibilità con PCI;
- Nei sistemi x86 per le macchine radice è stata implementata la possibilità di abilitare la modalità CR4.UMIP (User-Mode Instruction Prevention) fornita dai processori Intel, che consente di vietare l'esecuzione nello spazio utente di alcune istruzioni come SGDT, SLDT, SIDT, SMSW e STR, che possono essere utilizzate in attacchi mirati all'aumento dei privilegi nel sistema.
Fonte: opennet.ru
