Mehr Sicherheit oder bessere Systemauslastung: das leistet Virtualisierung für Embedded-Systeme

Virtualisierung im Embedded-Umfeld

27. April 2007, 13:52 Uhr | Thomas Dietrich
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 5

Designentscheidung: Sicherheit oder Performance

Ein Unterschied zwischen Embedded-VMMs und allgemein verwendbaren VMMs ist die Architektur, wie gut die Virtuellen Maschinen voneinander isoliert sind. Die meisten Embedded-Systeme sind geschlossene Systeme, für die typischerweise die Software von einem Anbieter entwickelt und installiert wird. Ein Aufspielen von Software durch den Benutzer ist nicht vorgesehen. Damit sind die Anforderungen an strenge Entkoppelung oft geringer, so dass bei Verwendung eines General-Purpose-VMM die Systemleistung und auch die Deterministik im Vordergrund stehen. In anderen Fällen, wie z.B. sicherheitskritischen Anwendungen, ist der Bedarf an strenger Entkopplung viel höher, oft sind sogar strenge Testabläufe zu erfüllen oder Zertifizierungen gefordert. Anhand von zwei Beispielen lässt sich zeigen, wie Embedded-VMMs hinsichtlich Performance und Deterministik optimiert werden können, indem man die strenge Entkopplung der VMs aufhebt.

passend zum Thema

Erstes Beispiel: Viele Echtzeit-Betriebssysteme verwenden kein Paging [1]. Zugriffe auf Speicherseiten machen es für Echtzeit-Anwendungen sehr schwer, die Deterministik einzuhalten. Auch die Systemleistung leidet unter Memory-Paging. In einem Intel-VT-System mit einem Gast-Betriebs-system und abgeschaltenem Paging ist die klare Abtrennung zu den anderen VMs aufgeweicht. Das Betriebssystem kann den gesamten physikalischen Speicher lesen und beschreiben, ein-schließlich des Speichers für Gerätetreiber und für andere Gast-Bestriebssysteme. Dies ist ein Kompromiss, der in einer General-Purpose-Umgebung nicht akzeptabel wäre, doch für Embedded-Systeme kann diese Lösung sehr interessant sein, um die Deterministik nicht aufzugeben.

Zweites Beispiel: Die I/O-Performance kann ausschlaggebend für den Erfolg eines Systemdesigns sein. Deshalb haben einige Anbieter den virtuellen Maschinen einen direkten Zugang zu DMA-fähigen (Direct Memory Access) Treibern ermöglicht. Die I/O-Performance lässt sich dadurch steigern, doch andererseits öffnet dies auch böswilligen Applikationen oder fehlerhaften Gerätetreibern den Zugriff auf den Speicher anderer Gast-Betriebssysteme. Aber auch hier gilt: Bei Systemen mit definierter Software-Umgebung mögen diese Kompromisse durchaus akzeptabel sein.

Auch wenn es einige Embedded-Systeme gibt, die auf die strenge Entkopplung zwischen den Gast-Betriebssystemen verzichten können, gibt es andere, die eine klare Trennung erfordern (Bild 2). Dazu zählen alle sicherheitskritischen Anlagen, die mit einem nach der Luftfahrt-Norm DO-178B zertifizierten Betriebssystem arbeiten. In solchen Systemen wären diese Optimierungen nicht zulässig [2].

bild2_76a82a_06.jpg
Bild 2. Beispiel einer MILS-Architektur (Multiple Independent Levels of Security) mit Intel Virtualization Technology. In diesem Beispiel ist jede virtuelle Maschine software-technisch so sicher, als würde sie auf einer eigenen Hardware laufen.

  1. Virtualisierung im Embedded-Umfeld
  2. Kommerziell verfügbare Virtualisierungslösungen für Industriesteuerungen
  3. Zwei Betriebssysteme auf einer Maschine: ohne Virtualisierung aufwendig
  4. Echtzeit-sichere Interrupt-Verarbeitung
  5. Statische Virtual Machines
  6. Designentscheidung: Sicherheit oder Performance

Jetzt kostenfreie Newsletter bestellen!