Hypervisor und Container

Von IT zu zeitkritischer OT

28. August 2018, 17:18 Uhr | Heinz Egger, CEO bei Linutronix
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

IT und OP

Container und VM sind in der IT-Welt entstanden, um die dortigen Anforderungen zu lösen. Mit der VM wurde es möglich, mehr als nur eine Applikation pro Rechner/Server laufen zu lassen. Der Einsatz und Nutzen der Container-Technologie stieg in dem Maße, wie eine Anwendung von einem einzigen, großen monolithischen Block zu einer Sammlung von kleinen Applikationen wuchs. Die Frage ist, ob diese Technologien auch im Embeddedumfeld mit ihren speziellen Anforderungen genutzt werden können und wenn ja, ob sie einen Vorteil bieten können.

Die Antwort beginnt bei den VMs: Virtuelle Maschinen erblickten ihr Leben auf Großrechnern und wuchsen auf speziellen Serverarchitekturen; deshalb ist eine gewisse Skepsis für den Nutzen im OP-Bereich nachvollziehbar.
Die großen CPU-Hersteller wie Intel, AMD und ARM haben für den Embeddedbereich allerdings Geburtshilfe geleistet: Etwa ab 2005 wurden Prozessoren um spezielle Funktionen für die Virtualisierung erweitert.
Mittlerweile hat die Technologie kosteneffiziente CPUs erreicht, wie sie im OP-Bereich vorkommen. In Kombination dieser neuen CPUs mit einem geeigneten Hypervisor lassen sich auch die spezifischen Anforderungen der Automatisierung erfüllen. Mit eine der wichtigsten technischen Anforderungen an eine Steuerung ist die Echtzeitfähigkeit**.

Unter Kostengesichtspunkten sollte ein einziger Rechner möglichst viel Funktionalität tragen. Damit wird Konsolidierung gefordert, also die Zusammenführung bisher getrennter Funktionen, von mehreren Hardwarekomponenten auf eine einzige Hardware. Allerdings soll dabei die existierende Software beibehalten werden: hier ist ein Hypervisor wie jailhouse ein geeigneter Ansatz.

Die Open-Source-Lösung läuft auf unterschiedlichen Architekturen und hat einen minimalen Footprint von weniger als 10 000 Codezeilen. Hier können im Gastssytem unterschiedliche Betriebssysteme und Bare-Metal Code laufen. Jailhouse ermöglichst es, Anwendungen zu separieren ohne die Echtzeitfähigkeit zu verlieren. Der zusätzliche Overhead, den jailhouse in einem RT-System verursacht, liegt in der Größenordnung von 2 – 10 µs, je nach verwendeter Hardware. Damit sind selbst im Gastsystem harte Echtzeitanforderungen erfüllbar. Mit der Separierung können beispielsweise sowohl die graphische Bedieneinheit als auch ein zertifizierter Code auf der selben CPU in unterschiedlichen VMs laufen. Die GUI und ihr unterliegendes Betriebssystem kommunizieren zur Umgebung, und erhalten ein regelmäßiges (Sicherheits-)Update; die zertifizierte Anwendung verbleibt in ihrer VM, ohne Update oder Beeinflussung von außen. Zusätzliche läuft eine zeitkritische Steuerung auf einem anderen Kern als Bare-Metal-Anwendung. Dies ist ein klassischer Fall von Konsolidierung der die Relevanz von Virtualisierung im Embeddedsegment skizziert.

Aber auch Containertechnologie findet dort Beachtung. Seit etwa 2014, als mit Docker eine Open-Source-Plattform für das Container-Management das Licht der Welt erblickt hat, ist das Thema allgegenwärtig. Zwei Entwicklungen haben sich hier gegenseitig ergänzt – der Siegeszug von (Echtzeit-)Linux und der Container als (scheinbare) Antwort auf die Frage,
wie Linuxanwendungen einen einfachen Weg in möglichst viele verschiedene Distributionen finden.  

Im IIoT ist der Einsatz von Open-Source-Lösungen in unterschiedlichsten Bereichen akzeptiert worden. Selbst Hersteller bisher geschlossener Steuerungslösungen haben die Notwendigkeit zur Unterstützung von Drittanbietersoftware erkannt, sonst droht die Abwanderung der Kunden. Hier wird auf ein Linux-OS gewechselt, die SPS läuft weiterhin als Soft-SPS und die Drittanbietersoftware, abgesichert gegenüber der Steuerung, im Container. Ein symbiotischer Ansatz, der zufriedene Beteiligte hinterlässt und die bisherigen geschlossenen Lösungen, Industrie-4.0-tauglich macht.

passend zum Thema

Bild 2: Konsolidierung mit Jailhouse
Bild 2: Konsolidierung mit Jailhouse
© Linutronix

Bleibt noch die Frage nach dem geeigneten Container. Docker ist in aller Munde, aber auch die impliziten Linuxwerkzeuge wie LXC sind im Rennen.
Darüber hinaus existieren vollständige Distributionen wie Snap-OS. 

Zunächst ist allen Ansätzen ihre Echtzeitfähigkeit gemein. Diese ist zwar primär eine Folge des genutzten Betriebssystems, steht aber ebenfalls jeder Funktion in einem Container uneingeschränkt zur Verfügung. Auch die einzelnen Anwendungen können gegeneinander bis zu einem gewissen Maße separiert werden. Es bleibt aber die Beeinflussbarkeit über das Betriebssystem gegeben. Eine zertifizierte Anwendungssoftware innerhalb eines Containers kann also vom Update ausgenommen werden. Ein Betriebssystemupdate könnte aber die Applikation beeinflussen. Eine eineindeutige Lösung für dieses Szenario existiert nicht, die Antwort hängt stark von den Nebenbedingungen ab. Dazu sollten die Unterschiede der Containeransätze betrachtet werden.


  1. Von IT zu zeitkritischer OT
  2. Virtualisierung und Container
  3. IT und OP
  4. Container versus VM

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!