Sie sind hier: HomeRubrikenEmbeddedSoftware

Systemsoftware: Auf Nummer sicher mit PikeOS 4.0

Sysgo stellt eine neue Version seines Hypervisors PikeOS vor, der sicherheitskritische und -unkritische Anwendungen auf einer gemeinsamen Hardware integriert. Version 4.0 verbessert die Performance, erlaubt den Einsatz mehrerer Grafikanwendungen gleichzeitig und wurde speziell für ARM Cortex-A9 und -A15 optimiert.

Not-Aus-Taster Bildquelle: © th-photo - Fotolia

Mit dem Hypervisor PikeOS können mehrere Betriebssystem-Instanzen auf einer gemeinsamen Hardware betrieben werden. Vormals getrennte Geräte können damit zu einem Gerät zusammengefasst werden. Die Virtualisierung von PikeOS sorgt dafür, dass trotzdem alles so sicher ist wie bei physikalisch getrennten Prozessoren – jede Instanz erhält eigene CPU-Ressourcen und einen komplett abgeschirmten Speicherbereich. Dabei ist PikeOS so angelegt, dass die fertigen Systeme später zertifizierbar sind, sei es nach Standards der Luftfahrt (DO-178B), des Automobilbaus (ISO 26262), der Bahntechnik (EN 50128), der Industrie (ISO 61508) oder der Medizintechnik (ISO 62304).

Version 4.0 von PikeOS enthält eigens Optimierungen für die QorIQ-Prozessoren von Freescale sowie für ARM Cortex-A9 und -A15. Nach wie vor läuft der Hypervisor aber auch auf anderen Prozessor-Architekturen wie PowerPC, x86, Mips und Sparc V8. Die QorIQ-Anpassung geschah im Auftrag von Freescale für nicht näher genannte Projekte im Bereich Automotive und Kommunikation. Von größerem allgemeinen Interesse dürften die Cortex-A9- und A15-Versionen sein, die vorwiegend in Automobil-Anwendungen zum Einsatz kommen. Hier stützt sich PikeOS auf die Funktionen der ARM Trustzone und – beim A15 – auf die dort vorhandenen Hardware-Virtualisierungsfunktionen.

Mit Hardware-Virtualisierung

PikeOS auf ARM Cortex-A15 Bildquelle: © Elektronik
Bild 1. Beispielhafte PikeOS-Software-Architektur auf einem ARM Cortex-A15-System. Der PikeOS TrustZone Monitor besteht aus nur 150 Zeilen Quellcode und regelt die Interprozesskommunikation zwischen gesichertem und »normalem« Teil.

Die Hardware-Virtualisierung des Prozessors sorgt dafür, dass die virtualisierten Betriebssysteme ohne Modifikation und ohne Performanceverlust ablaufen können (Bild 1). Im sicherheitsunkritischen Bereich können z.B. ein beliebiges Linux, Android, ein Posix-System, AUTOSAR oder ein konventionelles Echtzeit-Betriebssystem wie RTEMS betrieben werden. In diesem Bereich sind Komfortfunktionen wie vielleicht eine Sitzverstellung oder Infotainment angesiedelt. Der sicherheitskritische Teil enthält die Teile, die einer Zertifizierung unterliegen. Das könnte Kryptografie sein, Car2X, x-by-wire-Funktionen o.ä. sein.

Es wäre naheliegend für Visualisierungsaufgaben auch ein Windows-Gastsystem zu verwenden. Das unterstützt Sysgo allerdings nicht, obwohl ein lauffähiger Prototyp existiert. Sysgo-CEO Knut Degen sagt auch, warum: »Das bekommen wir beim besten Willen nicht zertifiziert, weil wir mit Windows auf x86 festgelegt sind. In dem Moment, wo wir die Hardware-Virtualisierung nutzen, sind wir darauf angewiesen, dass das, was der Prozessorhersteller macht, auch wirklich funktioniert, dass keine Backdoors eingebaut sind usw. Das gilt für ARM natürlich genauso. Aber bei ARM können wir es mit großem Aufwand nachweisen, bei Intel nicht.

Die Cortex-A9-Implementierung von PikeOS ist etwas einfacher, weil dieser Prozessor keine Hardware-Virtualisierung kennt. Hier kann man nur eine Betriebssystem-Instanz im ungesicherten Teil nutzen, damit diese dann ohne Overhead die ganze Prozessorleistung nutzen kann (Bild 2).

PikeOS auf ARM Cortex-A9 Bildquelle: © Elektronik
Bild 2. Die Hardware des ARM Cortex-A9 kennt keine Virtualisierungsbefehle. Deshalb kann man neben dem sicherheitskritischen Teil mit PikeOS nur eine weitere Betriebssysteminstanz sinnvoll betreiben.

Im gesicherten Teil werden native PikeOS-Anwendungen betrieben sowie ebenfalls ein Linux-System. Die Gastsysteme im sicheren Teil sind paravirtualisiert. Das bedeutet, dass das Betriebssystem nur im User-Mode betrieben wird. Wenn Befehle auftauchen, die einen Wechsel in den Kernel-Mode erzwingen würden, muss dieser Wechsel abgefangen werden. Dazu ist eine Modifikation des Betriebssystems notwendig, zu der logischerweise der Quellcode vorliegen muss. Mit seiner Embedded-Distribution ELinOS kann Sysgo den Kunden hier ein paravirtualisiertes Linux bereitstellen.

Eine weitere Neuheit mit Version 4.0 betrifft das Grafiksystem: Komplexe Systeme verfügen häufig über mehrere Grafikanwendungen, die Zugriff auf einen Grafikprozessor benötigen. PikeOS unterstützt die optimale Ressourcenverteilung und -auslastung von Grafikprozessoren (GPU) und Framebuffer durch GPU Sharing. Die Anwendungen werden über einen Server verwaltet und auf unterschiedlichen Displays beliebig verteilt.