Anbieter zum Thema
Ein Weg, um Echtzeit-Verhalten im Gast zu erreichen, wäre es, das Gast-OS so anzupassen, dass es nicht alle Hardware benötigt und ihm die benötige Hardware exklusiv zur Verfügung zu stellen. Das geht nur bei Betriebssystemen, auf deren Quellcode man Zugriff hat oder die per se so konfigurierbar wären. Das komplette Gast-OS wäre nun außerhalb des Zugriffes des Hypervisors. Bei diesem Ansatz würde man die Vergrößerung der Latenzzeiten durch weitere (Verwaltungs-)Software vermeiden.
Der Nachteil bei diesem Ansatz ist, dass ein Monitoring dieses Gastsystems nicht mehr gegeben ist. Im Kontext von Security und Safety ein nicht akzeptabler Zustand, da dieser Gast vollkommen unkontrolliert auf dem SoC laufen würde und ein nicht autorisierter Zugriff auf ein Gerät nicht erkannt werden würde.
Zusammengefasst: Betrachtet man die spezifischen Anforderungen eines Embedded- (Industrie-) Systems und die Erwartungen an einen Hypervisor, dann würde man sich ein System wünschen, bei dem es zu keinem Overhead aufgrund der VMM kommt (wie bei den oben genannten Systemen), damit die Echtzeitfähigkeit gegeben bleibt. Auf der anderen Seite muss das System in sich gegeneinander komplett abgeschottet bleiben, damit keine gegenseitige Beeinflussung möglich ist, da sonst die notwendige Sicherheit (Datenintegrität etc.) beziehungsweise funktionale Sicherheit nicht realisierbar ist.
Hier setzt Jailhouse auf. Der Hypervisor nutzt die Tatsache, dass moderne SoCs bereits eine vielfältige Hardware Unterstützung für Virtualisierungstechnologien (Intel-VT, AMD-V, ARM-V Technologie) mitbringen. Jailhouse nutzt zur erstmaligen Initialisierung beim Bootvorgang ein Linux-System, was die Größe des Hypervisors und damit die Größe der vertrauenswürdigen Codebasis (TCB = trusted code base) deutlich limitiert.
Jailhouse – ein etwas anderer Ansatz
Jailhouse ist ein Open-Source-Softwareprojekt. Der Code steht unter der Lizenz GPL v2. Ursprünglich wurde die Entwicklung von Siemens gestartet, heute wird Jailhouse von vielen Unternehmen unterstützt. So hat beispielsweise AMD die Portierung auf seine CPUs beigesteuert, ARM die auf die ARM Technologie ab ARM v7 aufwärts. Und von Huawei kam die Portierung auf ARM64.
Das Linux-System verbleibt nach dem Start von Jailhouse auf dem System und bildet die sogenannte root cell. Sie übernimmt die Verwaltung und erlaubt den Zugriff auf das System und die VMs. VMs können hierüber gestoppt oder neu gestartet werden. Dies alles ohne Nebenwirkungen auf die anderen VMs. Damit ist eine kritische Mindestfunktionalität für Security und Safety gegeben.
Jailhouse ist also von der Art und Weise, wie der SoC initialisiert wird, ein Type-II-Hypervisor. Auf der anderen Seite ist es aber auch ein Bare-Metal-Hypervisor, da er während der Nutzung des SoCs direkt auf der Hardware sitzt und diese verwaltet.
Jailhouse erzeugt maximal so viele VMs, in Jailhouse „cell“ genannt, wie physikalische CPUs vorhanden sind. Es können dabei mehrere CPUs zu einer VM kombiniert werden. Jede Zelle bekommt ihren eigenen Speicherbereich, ihre eigenen Interrupts, ihre eigene I/O und dergleichen zugeordnet. Prinzipiell kommt ein Jailhouse-System ohne virtuelle Geräte aus. Die Zuordnung und später dann auch die Kontrolle, dass die Konfiguration eingehaltenen wird, erfolgt mit den eingebauten Hardware-Features der SoCs (MMU, IOMMU, PCI pass through …).
Im günstigsten Falle muss der Hypervisor bei einem korrekt laufenden System nie eingreifen, denn alle Vorgänge wie IRQ-Behandlung und dergleichen laufen ohne einen Eingriff des Hypervisors ab. Dies hat zum Vorteil, dass echtzeitkritische Aufgaben ohne Verzögerung durch Software abgearbeitet werden können. Die Kontrolle über die einzelnen Cells wird auch in diesem Fall von der „root cell“ ausgeübt.
Die Konfiguration des Systems kann jederzeit geändert werden. Wenn etwa eine VM nicht mehr benötigt und gestoppt wird, dann können die Ressourcen dieser VM neu aufgeteilt werden. Dazu ist die Konfigurationsdatei entsprechend anzupassen und von der „root cell“ danach auszuführen. Auf diese Weise kann das Gesamtsystem dynamisch angepasst werden. In einer Zelle können unterschiedliche Systeme zur Ausführung kommen, vom „historischen“ OS bis hin zu einer bare-metal Applikation. Dadurch eignet sich ein Jailhouse-Ansatz sowohl zur Konsolidierung als auch zur Migration bestehender Systeme [siehe Bild 1].
Artikelfiles und Artikellinks
(ID:44453370)