33600.jpg

Smartphones werden in Fahrzeuge integriert, um nicht nur Multimedia-Inhalte, sondern auch fahrzeugbezogene Anwendungen, Dienste und Fernsteuerung bereitzustellen. Zu den Fahrerassistenzsystemen zählen unter anderem Warnungen beim Verlassen der Fahrspur und bei toten Blickwinkeln, vorausschauende Sensorik (Predictive Forward Sensing: ein Nissan-Modell blickt zwei Fahrzeuge voraus, um Kollisionen zu vermeiden), automatisches Einparken, nachdem der Fahrer ausgestiegen ist etc.

Kurz gesagt, der Multimedia-Anteil in Fahrzeugen steigt und wird immer raffinierter, was zu einem verbesserten Benutzererlebnis bei Unterhaltung, Information und Sicherheit führt. Diese elektronischen Systeme laufen mit sehr weit entwickelten Software-Stacks, wie Genivi Linux, Android und Windows Car. Doch trotz ihrer Fertigkeiten wissen wir alle, dass diese Umgebungen auch weiterhin eine Welt der Rootkits, Blue-Screens-of-Death und Patch-Tuesdays darstellen.

Auf einen Blick

Hypervisor

Ein neuer Systemarchitektur-Ansatz für die Konvergenz sicherheitskritischer Funktionen mit Consumer-Elektronik lässt sich mit Hilfe eines Hypervisors auf Basis eines Microkernels realisieren. Dieser Hypervisor kann Echtzeit- und sicherheitskritische Anwendungen neben leistungsfähigen Open-Source-Multimedia-Betriebssystemen isolieren und verwalten.

Tatsächlich bestehen Sicherheitsanwendungen im Fahrzeug aus sorgfältig erstellter Echtzeit-Software, die nach strengen Qualitätsstandards entwickelt und auf einfachen Echtzeit-Kerneln wie OSEK und Autosar ausgeführt werden. Wie vereinen nun Automotive-OEMs den Bedarf an Sicherheit mit dem Wunsch nach mehr Infotainment und Apps, wenn Innovation im Auto heute vornehmlich durch Consumer-Elektronik anstatt  durch höherwertige Automobil-Elektronik geprägt ist?

Systeme trennen

Traditionell trennen Automobilhersteller die Sicherheitssysteme von Multimedia-Komponenten und anderen nicht sicherheitsrelevanten Systemen. Die Zulieferer im Automotive-Bereich bestätigen dies: der OEM benennt verschiedene Tier-1-Zulieferer, um Teilsysteme für jede einzelne Funktion im Fahrzeug zu integrieren und verlässt sich auf fahrzeuginterne Netzwerke wie CAN, die eine begrenzte Interaktion zwischen den Systemen erlauben. Da Fahrzeuge der Oberklasse nun an die 100 dieser Teilsysteme, darin 200 diskrete CPUs und zahlreiche fahrzeuginterne Netzwerke enthalten, die alles miteinander verbinden, ist bei der Entwicklung und Integration nun eine Grenze erreicht. Der wachsende Elektronikanteil stellt die Fahrzeughersteller mittlerweile vor Herausforderungen wie erhebliche Fertigungskosten, physikalischer Platzbedarf und Time-to-Market.

Bild 1: Mixed-Criticality-Infotainment-System der nächsten Generation.

Bild 1: Mixed-Criticality-Infotainment-System der nächsten Generation.Green Hills

Es gibt ein weiteres, vielleicht weniger offensichtliches Problem bei diesem traditionellen Ansatz: das Fahrerlebnis wird eintönig. Die Konsole kann nur Navigationsinformationen anzeigen, wenn die Ausschreibung des OEMs auch die Anforderungen für diesen Informationsfluss enthalten hat. Sind alle Teilsysteme erst einmal installiert, lassen sich andere Interaktionen, die eventuell das Benutzererlebnis verbessern würden, technisch und finanziell nur schwer integrieren.

Die Antwort auf diese Herausforderungen ist die Umkehr des Elektronik-Wachstumstrends und die Zusammenlegung getrennter Funktionen in insgesamt weniger elektronische Systeme. Werden mehrere Funktionen zusammen in einem Teilsystem vereint, werden physikalische Leitungen praktisch zu virtuellen Leitungen und Software-Updates betreffen nur ein Teilsystem anstelle mehrerer. Die Performance und Flexibilität der Kommunikation innerhalb einer Recheneinheit ist wesentlich besser als über das gesamte Fahrzeugnetzwerk. Die Zusammenlegung von Funktionen wird durch stromsparende Multicore-SoCs auf Basis der ARM Cortex-A9- und -A15-Prozessoren begünstigt. Diese bieten integrierte I/Os wie Wireless-Networking und Multicore-GPUs. Beispiele solcher Bausteine sind TIs OMAP5, Freescales i.MX 6Quad und Nvidias Tegra 3.

Prozessor-Konsolidierung lenkt den Automotive-Markt immer mehr in Richtung Mixed-Criticality-Systems, in denen sicherheits- und echtzeit-kritische Komponenten nebeneinander mit weniger kritischen Komponenten betrieben werden. So führt zum Beispiel die Konsolidierung der Infotainment-Haupteinheit mit der echtzeit-basierten sicherheitskritischen Rückfahrkamera und/oder Fahrerinformationseinheit zu einem typischen Mixed-Criticality-System (Bild 1).

Die Infotainment-Systemarchitektur der nächsten Generation muss sicherstellen, dass die zusammengefassten Komponenten nicht auf unvorhergesehene Weise interagieren, was in kritischen Systemen die Zuverlässigkeit beeinträchtigen würde.

Die Lösung: eine Hybrid-Architektur

Open-Source-Betriebssysteme wie Genivi und Android sind bekannt dafür, die neusten und populären Multimedia-Standards sowie Anwendungen von Drittanbietern zu unterstützen. Allerdings können wir uns nicht allein auf das Multimedia-Betriebssystem verlassen, um alle Aspekte zukünftiger konsolidierter Automotive-Systeme zu steuern. Universelle Betriebssysteme booten nicht schnell genug, können keine Echtzeit-Antwort garantieren und sind nicht zuverlässig genug für sicherheitskritische Funktionen. Deshalb ist eine Hybrid-Architektur erforderlich, in der Multimedia-Betriebssysteme und ihre Anwendungen unabhängig neben sicherheitskritischen Echtzeit-Applikationen existieren können. Virtualisierung ist die Lösung für diese Herausforderung.

Einführung in die System-Virtualisierung

Die ersten Virtualisierungen von Computersystemen erfolgen in Mainframes in den 60er und 70er Jahren des letzten Jahrhunderts. Obwohl sie während der 80er- und 90er-Jahre weitgehend ungenutzt blieben, haben Computer-Experten viele Anwendungen der Virtualisierung schon lange gekannt – und zwar einschließlich der Möglichkeit, unterschiedliche und lange bestehende Betriebssysteme auf einer einzigen Hardware-Plattform zu betreiben.

Bild 2: Typ-1-Hypervisor-Architektur mit Microkernel.

Bild 2: Typ-1-Hypervisor-Architektur mit Microkernel.Green Hills

Zu Beginn des neuen Jahrtausends erwies sich die volle System-Virtualisierung und das Hosting unveränderter universeller „Gast“-Betriebssysteme wie Linux und Windows als praktisch für gängige PC-Plattformen. Daraufhin wurden Beschleunigungstechniken für die Hardware-Virtualisierung der meisten großen Mikroprozessor-Architekturen üblich. Haupteinsatzbereich der Virtualisierung ist zwar die Server-Konsolidierung und Bereitstellung in Rechenzentren; die Technik hat sich aber auch im Bereich der Desktop- und Laptop-Systeme etabliert und findet seit kurzem sogar ihren Weg in den Mobil- und Embedded-Bereich.

Die Verfügbarkeit der Virtualisierungstechnik über diesen weiten Bereich an Rechnerplattformen bietet Entwicklern und Technologen letztendlich eine ultimative offene Plattform: die Möglichkeit, jede Art von Betriebssystem in beliebiger Kombination zu betreiben und dabei eine beispiellose Flexibilität für die Bereitstellung und Nutzung zu garantieren.

Hypervisor-Architekturen

Hypervisor sind vielfältig. Einige sind Open-Source, andere proprietär. Wiederum andere nutzen kleine Hypervisor, die mit speziellen Gast-Betriebssystemen ergänzt sind. Das Ziel der sicheren Trennung zwischen Mixed-Criticality-Komponenten in zukünftigen Infotainment-Systemen wird mit Typ-1-Hypervisoren erreicht, die auf der Hardware selbst laufen. Typ-2-Hypervisor laufen auf einem universellen Betriebssystem wie Windows oder Linux, das I/Os und andere Dienste im Auftrag des Hypervisors bereitstellt. Da Typ-2-Hypervisor grundsätzlich nicht robuster sein können als ihr zugrundeliegendes Host-Betriebssystem (das anfällig sein kann), eignen sie sich nicht für sicherheitskritische Anwendungen und kamen in der Vergangenheit nicht in solchen Umgebungen zum Einsatz.

Microkernel

Microkernels stellen gegenüber großen universellen Betriebssystemen wie Linux, Android und Windows eine überlegene Sicherheitsarchitektur dar. Ein Microkernel betreibt nur eine minimale Menge kritischer Systemdienste wie beispielsweise das Prozess-Management, Exception-Handling und die Kommunikation zwischen Prozessen. Dies erfolgt im Supervisor-Modus und stellt eine Architektur bereit, mit der komplexe Systemsoftware im User-Modus nur dort laufen kann, wo der Zugriff auf Ressourcen erlaubt wurde, die vom Systementwickler für passend eingestuft wurden. Eine Schwachstelle oder ein Fehler in einer Komponente kann dann keine Gefahr mehr für eine kritische Komponente darstellen, weil das betroffene Subsystem keinen Zugriff auf diese Ressource hat. Da das Microkernel relativ einfach ist, lässt es sich von unabhängigen Aufsichtsbehörden formal nach den höchsten Sicherheitsstandards testen und zertifizieren.

Microkernels können zur Implementierung der System-Virtualisierung zum Einsatz kommen. Bild 2 zeigt eine Typ-1-Hypervisor-Architektur auf Basis eines Microkernels. Integrity Multivisor von Green Hills Software ist ein Beispiel einer solchen Technologie.

Virtualisierungs-Support

CPU-Hardware-Virtualisierungs-Support ist ein wichtiger Faktor bei der wachsenden Akzeptanz der vollen Virtualisierung im gesamten Rechnermarkt. Zu den gängigen Funktionen zählt ein echter Hypervisor-Modus, der nicht modifizierten Gast-Betriebssystemen eine Ausführung mit begrenzten Privilegien ermöglicht. So verhindert zum Beispiel die CPU, dass ein Gast-Betriebssystem physikalischen Speicher belegt, der jenseits der Zuweisung für die virtuelle Maschine des Gastes liegt. Hardware-Virtualisierung ermöglicht auch ein selektives Exception-Handling, so dass hypervisor-definierte Ausnahmeklassen direkt über das Gast-Betriebssystem verwaltet werden können, ohne die Hypervisor-Software zwischenschalten zu müssen. Der TI OMAP5 und seine Automotive-Ableger sind ein Beispiel für einen Multicore-ARM-Prozessor, der Hardware-Support für die Virtualisierung bietet (ARM Virtualization Extensions – ARM VE).

Bild 3: Hypervisor-Architektur für die Automobilelektronik der nächsten Generation.

Bild 3: Hypervisor-Architektur für die Automobilelektronik der nächsten Generation.Green Hills

Das Microkernel bietet auch eine API (Applikations-Programmier-Schnittstelle) und ein SDK (Software-Entwicklungkit), was die Entwicklung und Bereitstellung sicherheitskritischer Anwendungen ermöglicht (einschließlich derer, die Automotive-Standards wie OSEK entsprechen), die harte Echtzeit-, sicherheitskritische oder andere strenge Anforderungen erfüllen müssen, die nicht über ein universelles Gast-System verwaltet werden können.

In vielen kommenden Sicherheitssystemen mit Multimedia-Anforderungen muss der Microkernel imstande sein, seine eigene anspruchsvolle Grafikumgebung zu unterhalten, die sich vom universellen OS für die übrigen Aktivitäten unterscheidet. So müssen zum Beispiel 3D-Grafiken hochwertige sicherheitskritische Anwendungen in Clustern und Head-Up-Displays mit einbeziehen. Der Microkernel bietet daher ein OpenGL-Subsystem, das für die integrierten GPUs optimiert wurde, die sich heute in den Multicore-Applikationsprozessoren finden.

Der Microkernel ist die einzige Software, die im privilegierten Modus des Mikroprozessors läuft (Hypervisor-Modus). Gast-Betriebssysteme und deren Applikationsbestandteile werden in einem unprivilegierten Modus ausgeführt, der aus Sicht des Microkernels nicht vertrauenswürdig erscheint.

Bild 3 zeigt die Anwendung der Microkernel-Typ-1-Hypervisor-Architektur im genannten Mixed-Criticality-Infotainment-System, das aus dem Haupt-Infotainment-Betriebssystem, MeeGo sowie sicherheitskritischen Anwendungen für die Rückfahrkamera und Fahrerinformationscluster besteht.

Fazit

Entwickler, die Software für kommende Systeme bereitstellen, müssen sicherstellen, dass zukünftige Multimedia enthaltende Automotive-Systeme die Zuverlässigkeit, Sicherheit, Echtzeit-Performance und den Ressourcenbedarf bieten, der von der Automobilindustrie und vom Kunden gleichermaßen gefordert wird. In zukünftigen In-Car-Systemen wird eine Konvergenz sicherheitskritischer Funktionen mit herkömmlicher Telematik- und digitaler Unterhaltungselektronik stattfinden. Die Zusammenlegung dieser Funktionen auf einer einzigen Rechenplattform ist entscheidend, um die Größe, das Gewicht, die Leistungsaufnahme und die Fertigungskosten zu verringern, aber auch, um die bestmögliche Benutzerfreundlichkeit bereitzustellen.

Um dies sicher bewerkstelligen zu können, ist ein neuer Systemarchitektur-Ansatz erforderlich: Die Basis bildet ein Microkernel-basierter Hypervisor, der Echtzeit- und sicherheitskritische Anwendungen neben leistungsfähigen Open-Source-Multimedia-Betriebssystemen isolieren und verwalten kann.