Die Embedded Welt befindet sich momentan massiv im Umbruch.
IIoT (Industrie 4.0 oder wie immer man es nennen mag) hat die Türen geöffnet, Kommunikation ist ganz oben auf der Prioritätenliste, die Entwicklung wird immer schneller und die Industrie hat den Wert von Open Source Software als Mittel zur Lösung in diesem Rennen erkannt.
Zudem wird Hardware immer leistungsfähiger bei gleichzeitig sinkenden Kosten. Das bedeutet, dass jetzt auch beispielsweise Multi-Core CPUs für die Embedded Welt beim BOM akzeptierbar sind.
Zusätzlich zu diesen Änderungen an Hard- und Software hat sich auch die Rolle der Automatisierung im Zuge von cyber-physischen Systemen gewandelt. Ein Ansatz ist Teile der IT-Welt in die OT Welt zu holen. Diese als Edge- und Fog-Computing bezeichneten Ansätze sehen vor, dass Echtzeit Daten (= Daten mit geringer Latenz) vor Ort verarbeitet werden. Also in etwa mit dem, was bisher Steuerung (oder auch Sensor) hieß. Über der Steuerung sitzt dann eine Art von Datensammelstelle, eben der Edge- oder Fog Rechner.
Edge Rechner haben, dank der Fortschritte der Hardware Hersteller, die Kapazitäten um Applikationen, die bisher auf Servern liefen, vor Ort auszuführen. Und damit halten auch die Programmieransätze der IT-Welt Einzug in die Embedded Welt. Diese muss sich jetzt mit virtuellen Maschinen (VM) und deren Verwaltungssoftware (Virtual Machine Manager, VMM, auch Hypervisor genannt) oder Containern auseinandersetzen und beurteilen, was wohl die bessere Lösung ist. Wobei spezifische Embedded Anforderungen wie beispielsweise Echtzeit weiterhin berücksichtigt und erfüllt werden müssen.
Bei einer virtuellen Maschine handelt es sich immer um das Paket aus Betriebssystem und Anwendungscode, das in der virtuellen Umgebung, also im User Space, läuft. Mit Hilfe eines Emulators kann dem Paket sogar eine andere Hardware Architektur als physikalisch vorhanden vorgegaukelt werden.
Beim Container Ansatz wird auf die virtuelle Maschine, das Vorgaukeln einer eigenen Hardware und eines eigenen Betriebssystems, verzichtet. Das Betriebssystem ist für alle Container identisch, alle Container teilen sich die gleiche Hardware. Die Separierung der einzelnen Container erfolgt über spezielle Funktionen des Betriebssystems (unter Linux sind dies zum Beispiel CGROUPS und Namespaces). Das macht die Container schlank, das heißt, sie benötigen nicht viel zusätzlichen Code zu Ihrer eigentlichen Aufgabe. Weitere Informationen zu dem Thema finden Sie in unserem White Paper.
Abbildung 2 zeigt den schematischen Aufbau einer VM (links) und einer Container-basierten Lösung (rechts)