Hypervisoren trennen sicherheitskritische und nichtsicherheitskritische Bereiche eines Systems. Sie sorgen aber auch dafür, dass Funktionserweiterungen für die nächste Gerätegeneration so implementiert werden, dass sich Test- und Zertifizierungsaufwand in Grenzen halten.
Hypervisoren haben sich aus mehreren Gründen zur ersten Wahl entwickelt, wenn es um das Design von Embedded-Systemen geht. Ohne die Verzögerungen oder Laufzeitunstimmigkeiten, die bei Bare-Metal-Designs unter Linux oder Android üblich sind, unterstützt ein sorgfältig entwickelter Hypervisor das Starten kritischer Dienste unmittelbar nach dem Einschalten und bietet Echtzeit- und Performance-Garantien. Ein Hypervisor kann Safety-Anwendungen von Nicht-Safety-Anwendungen isolieren, und security-sensible Schnittstellen lassen sich in virtuellen Maschinen (VMs) schützen.
Dies ist jedoch erst der Anfang, denn die System-on-Chip-Anbieter statten ihre Produkte mit immer mehr Kernen mit größerer Verarbeitungsleistung aus, sodass Entwickler mit dem hier beschriebenen erweiterten Hypervisor-Design langfristige Vorteile erzielen können.
Produkt A ist die erste Version eines virtualisierten, linux-basierten Produkts mit safety-kritischen Elementen. Die gestrichelte Linie umschließt eine unter Linux laufende virtuelle Maschine, einen safety-zertifizierten Hypervisor-Host, der die virtuelle Maschine steuert, und die Geräte-Hardware. Es sind drei verschiedene Methoden der Treiberintegration dargestellt: ein emulierter Gerätetreiber (hochpräziser Timer) innerhalb der virtuellen Maschine, ein Pass-through-Treiber, bei dem der Linux-Bluetooth-Treiber durchgeleitet wird und direkt mit der Geräte-Hardware interagiert, sowie ein paravirtualisierter Dateisystemtreiber, der ein auf der virtuellen Maschine laufendes Frontend und ein auf dem Hypervisor-Host laufendes Backend verwendet.
Im ursprünglichen Design gibt es nur eine virtuelle Maschine. Ein auf dem Hypervisor-Host laufender PCI-Manager präsentiert dem Gast eine Teilmenge des PCI-Device-Space, der auf die an Linux durchgeleiteten Devices begrenzt ist. Eine System-Memory-Manager-Unit (SMMU) konfiguriert die Speichergrenzen der durchgeleiteten Geräte, sodass ein als Busmaster fungierendes Hardware-Gerät nicht das System-RAM verfälschen kann. Das erfolgreiche Starten von Produkt A wird durch die Verwendung eines Hypervisors sichergestellt, der gemäß IEC 61508 SIL 3 zertifiziert ist, um die Safety-, Echtzeit- und Performance-Anforderungen zu erfüllen.
Zukunftssicher durch Funktionserweiterungen
Die Erweiterung von Produkt A durch Features der nächsten Generation erfordert fünf Ergänzungen (in der Grafik mit Zahlen markiert).
Ein erweiterbarer Hypervisor unterstützt diese neuen Features mit Standards, nämlich POSIX C (und C++) für Hypervisor-Host-Dienste und VirtIO für individuelle virtuelle Geräte. Darüber hinaus unterstützt der Hypervisor Echtzeit-Reaktionen und das prioritätsgesteuerte Scheduling virtueller Maschinen, auch wenn mehrere virtuelle Maschinen dieselben CPU-Kerne nutzen.
Die neuen Features reduzieren die Auswirkungen auf die Entwicklungs- und Test-Teams, die die Verifikation von Produkt A als Ausgangspunkt für eine erweiterte Produktfamilie nutzen. Der erweiterungsfähige Hypervisor ist eine safety-zertifizierte Grundlage des Systems und sorgt für Zukunftssicherheit.
Randy Martin, Blackberry QNX
QNX
Halle 4, Stand 278