Im Jahr 2014 wurde die Entwicklung des quelloffenen Hypervisor Jailhouse gestartet. Jailhouse ist speziell für die Nutzung von isolierten Echtzeit-Anwendungen, sei es bare-metal oder RTOS basiert, oder zertifizierbarer Software entworfen worden.
Jailhouse nutzt ein asymmetrisches Multi-Processing (AMP), um seine Ziele zu erreichen. Bei Jailhouse wird die Hardware statisch partitioniert und dabei eine strikte Trennung zwischen einzelnen CPUs und Geräten durchgeführt. Durch ein neues Konfigurationsfile lässt sich die Partitionierung jederzeit anpassen.
Das übergeordnete Designziel ist Einfachheit. Es soll so wenig Code wie möglich zum Einsatz kommen, um die zwei wichtigsten Anforderungen an Jailhouse erfüllen zu können: Echtzeitfähigkeit und Zertifizierbarkeit (Verifizierbarkeit).
Daher ist Jailhouse ein Typ 1 Hypervisor. Die Erstinitialisierung der Hardware übernimmt Linux, der Hypervisor kann daher extrem schlank bleiben. Von Beginn an steht daher eine große Anzahl von unterstützter (und unterstützbarer) Hardware zur Verfügung. Und es sollte eine Open Source Lösung (GPLv2) werden, damit für jeden sichtbar ist, was wie gemacht wird.
Das Ergebnis ist überzeugend – Jailhouse unterstützt heute x86 und ARM (v7 und v8) Prozessoren. Voraussetzung ist, dass die CPUs eine Virtualisierungslösung in der Hardware unterstützen (z. Bsp. Intel VT-x; ARM VE). Dies ermöglicht Code, der jeweils deutlich kleiner als 10 000 LoC ist, und die Echtzeitfähigkeit ist mit einer zusätzlichen, auf den Hypervisor zurückzuführenden Latenz in der Größenordnung von ca. 1 µsek. gegeben bzw. bleibt erhalten.
Jailhouse ermöglicht es daher, bisher auf verschiedene Rechner/Steuerungen verteilte Lösungen zusammenzufassen und auf einer homo- oder heterogenen Multi-Core CPU auszuführen. Dank der Fähigkeit, unterschiedliche Betriebssysteme zu unterstützen, müssen die Applikationen oftmals nicht geändert werden.
Unterstützung durch Linutronix gibt es
unter anderem für iMX7, iMX8, TI 6xxx, Xilinx Ult-raScale+,Renesas STM32MP1xx.
Im Zusammenhang mit der Security ist die Kombination von Trusted Platform Module (TPM) bzw. TrustedZone (TZ), Trusted Execution Environment (TEE) und Hypervisor interessant. Linutronix unterstützt Sie gerne auch in diesem Zusammenhang. Siehe dazu auch Linux Security.