Azienda Siemens rilascio di un hypervisor open source . L'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 l'hypervisor Jailhouse, creati sulla base di pacchetti Debian per dispositivi supportati. Il codice del progetto è sotto licenza GPLv2.
L'hypervisor Γ¨ implementato come modulo per il kernel Linux e fornisce virtualizzazione a livello di kernel. I componenti per i sistemi guest sono giΓ inclusi nel kernel Linux principale. Per gestire l'isolamento si utilizzano i meccanismi hardware di virtualizzazione forniti dai moderni CPU. Le caratteristiche distintive di Jailhouse includono un'implementazione leggera e l'orientamento al binding delle macchine virtuali a CPU fisse, aree di RAM e dispositivi hardware. Questo approccio consente di garantire su un unico server multiprocessore fisico il funzionamento di diversi ambienti virtuali indipendenti, ciascuno dei quali Γ¨ assegnato al proprio core di CPU.
Con un legame rigido alla CPU, le spese generali del funzionamento dell'hypervisor vengono ridotte al minimo e la sua implementazione Γ¨ notevolmente semplificata, poichΓ© non Γ¨ necessario l'esecuzione di un complesso pianificatore di distribuzione delle risorse. L'assegnazione di un singolo core della CPU garantisce che non vengano eseguite altre attivitΓ su questa CPU. Il vantaggio di questo approccio Γ¨ la possibilitΓ di garantire accesso alle risorse e prestazioni prevedibili, rendendo Jailhouse una soluzione adatta per creare compiti eseguiti in tempo reale. Lo svantaggio Γ¨ la limitata scalabilitΓ , vincolata al 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 monoprocessore, mostrando prestazioni alle prestazioni del core CPU dedicato. In questa configurazione può essere eseguito un ambiente di qualsiasi sistema operativo, così come ambienti semplificati per eseguire un'unica applicazione o applicazioni separate specificamente preparate per risolvere compiti in tempo reale. La configurazione è definita in , che definiscono la CPU allocata all'ambiente, le aree di memoria e le porte di input/output.

Nella nuova versione
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌ Raspberry Pi 4 Model B ΠΈ Texas Instruments J721E-EVM;
- ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ivshmem, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ. ΠΠΎΠ²Π΅ΡΡ
Π½ΠΎΠ²ΠΎΠ³ΠΎ ivshmem ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π΄Π»Ρ VIRTIO;
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (hugepage) Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Intel, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π· Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Β«Machine Check ErrorΒ»;
- ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ARM64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SMMUv3 (System Memory Management Unit) ΠΈ TI PVU (Peripheral Virtualization Unit). ΠΠ»Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ (bare-metal), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PCI;
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86 Π΄Π»Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΊΠ°ΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ Intel ΡΠ΅ΠΆΠΈΠΌΠ° CR4.UMIP (User-Mode Instruction Prevention), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SGDT, SLDT, SIDT, SMSW ΠΈ STR, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π°ΡΠ°ΠΊΠ°Ρ , Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
Fonte: opennet.ru
