Jailhouse

Im Jahre 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.

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 in Typ 2 Hypervisor, d.h. er baut auf einem Betriebssystem (hier: Linux) auf. Die komplette Erstinitialisierung der Hardware übernimmt Linux, der Hypervisor kann daher extrem schlank bleiben. Und es steht von Beginn an 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. Vorausetzung ist, dass die CPUs eine Virtualiserungslösung in der Hardware unterstützt(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ück zufü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 zusammen zu fassen und auf einer heterogenen Multi-Core CPU auszuführen. Dank der Fähigkeit, unterschiedliche Betriebssysteme zu unterstützen, müssen die Applikationen oftmals nicht geändert werden.

Weiterführende Informationen finden Sie hier.