Die Firma Siemens die Veröffentlichung des freien Hypervisors . Der Hypervisor unterstützt den Betrieb auf x86_64-Systemen mit VMX+EPT oder SVM+NPT (AMD-V) Erweiterungen sowie auf ARMv7 und ARMv8/ARM64 Prozessoren mit Virtualisierungsfunktionen. Darüber hinaus existiert ein Image-Generator für den Jailhouse-Hypervisor, der auf Debian-Paketen für unterstützte Geräte basiert. Der Code des Projekts steht unter der GPLv2-Lizenz.
wurde als Modul für den Linux-Kernel implementiert und ermöglicht die Virtualisierung auf Kernel-Ebene. Komponenten für die Gastsysteme sind bereits im Hauptkern von Linux enthalten. Zur Verwaltung der Isolation werden die von modernen CPUs bereitgestellten Hardware-Virtualisierungsmechanismen verwendet. Zu den besonderen Merkmalen von Jailhouse gehören die leichtgewichtige Implementierung und die Ausrichtung auf die Bindung von virtuellen Maschinen an eine feste CPU, bestimmte RAM-Bereiche und Hardware-Geräte. Dieser Ansatz ermöglicht es, auf einem physischen Mehrkernserver mehrere unabhängige virtuelle Umgebungen zu betreiben, von denen jede einem eigenen Prozessorkern zugeordnet ist.
Bei einer strikten Zuordnung zu CPU werden die Overhead-Kosten durch den Hypervisor auf ein Minimum reduziert, und die Implementierung wird erheblich vereinfacht, da kein komplexer Ressourcenverteilungsscheduler erforderlich ist. Die Zuweisung eines einzelnen CPU-Kerns garantiert, dass auf diesem CPU keine anderen Aufgaben ausgeführt werden. Der Vorteil dieses Ansatzes liegt in der Möglichkeit, garantierten Zugriff auf Ressourcen und vorhersehbare Leistung zu gewährleisten, was Jailhouse zu einer geeigneten Lösung für die Erstellung von Echtzeitanwendungen macht. Ein Nachteil ist die begrenzte Skalierbarkeit, die von der Anzahl der CPU-Kerne abhängt.
In der Terminologie von Jailhouse werden die virtuellen Umgebungen als "Kammern" (cell, im Kontext von Jailhouse) bezeichnet. Innerhalb der Kammer verhält sich das System wie ein Einzelprozessorserver, der eine Leistung zeigt, die zur Leistung eines dedizierten CPU-Kerns. In der Umgebung können beliebige Betriebssysteme sowie abgespeckte Umgebungen für die Ausführung einer Anwendung oder speziell vorbereitete Einzelanwendungen, die zur Lösung von Echtzeitanforderungen entwickelt wurden, betrieben werden. Die Konfiguration erfolgt in , die die für die Umgebung zugewiesenen CPUs, Speicherbereiche und Ein-/Ausgabepunkte festlegen.

In der neuen Version
- Unterstützung der Plattformen Marvell MACCHIATObin, Xilinx Ultra96 hinzugefügt,
Microsys miriac SBC-LS1046A und Texas Instruments AM654 IDK; - Statistiken auf Ebene jedes CPU-Kerns hinzugefügt;
- Zurücksetzen der PCI-Geräte beim Herunterfahren der Kamera sichergestellt;
- Die Struktur des Device Trees wurde für die neuesten Versionen des Linux-Kernels angepasst;
- Für die ARM- und ARM64-Plattformen wurde ein Schutz gegen Spectre v2-Angriffe hinzugefügt. Die neuesten Änderungen in den QEMU-Versionen wurden in den qemu-arm64-Einstellungen berücksichtigt. Probleme mit dem Überschreiben der PSCI-Firmware auf Orange Pi Zero Platinen wurden behoben;
- Auf der x86-Plattform wird bei der Ausführung von Demoumgebungen (Inmates) die Verwendung von SSE- und AVX-Instruktionen aktiviert, und es wurde ein Ausnahmebericht hinzugefügt.
Zu den zukünftigen Plänen gehört die lang erwartete Unterstützung von IOMMUv3, die Verbesserung der Effektivität der Nutzung des CPU-Caches (), die Behebung von Problemen mit dem APIC auf AMD Ryzen-Prozessoren, die Überarbeitung des ivshmem-Geräts und die Integration von Treibern in den Hauptkern.
Quelle: opennet.ru
