Systemplattformen

Eine Firmware-Strategie für das Internet der Dinge

| Autor / Redakteur: David Kleidermacher * / Franz Graser

Die Laufzeitplattform: Microkernel oder Monolith?

Die Wahl der Laufzeit-Ausführungsplattform ist ein entscheidender Punkt einer IoT-Firmware-Strategie. Die Ausführung ist verantwortlich für ein effizientes und sicheres Ressourcenmanagement im gesamten Gerät. Es gibt zahlreiche Kernels – CMX, FreeRTOS, uc/OS, MQX, RTXC, T-Kernel, um nur einige zu nennen – die eine ähnliche Ablaufsteuerung (Scheduling), Multithreading und Synchronisation bieten, auf denen grundlegende IoT-Systeme aufbauen. Allen gemeinsam sind proprietäre APIs und die Unfähigkeit, die Vorteile der genannten hochrobusten Hardwarefunktionen zu nutzen.

Am anderen Ende der Skala findet sich Linux. Mit seinem Open-Source-Modell und einer Fülle von Entwicklern, Middleware und Anwendungen hat es eine wichtige Position bei der Laufzeitstrategie für das IoT. Jedoch ist es schwierig, Linux auf Low-End-Designs zu skalieren. Echtzeit-Latenz und Instant-On-Einschränkungen kommen hinzu, und es fehlt die Sicherheit, die man sich für eine zukunftssichere IoT-Strategie wünscht.

Es gibt einen Sweet-Spot zwischen diesen beiden Extremen: den Microkernel. Monolithische, universelle Betriebssysteme wie Linux enthalten Systemsoftware wie Netzwerk-Stacks, Dateisysteme und Gerätetreiber, die sich einen gemeinsamen Speicherraum teilen und im privilegierten Modus ausgeführt werden. Dies führt zu einem großen Platzbedarf und vielen Herausforderungen bei der Robustheit, wie es sich in den vielen Smartphone-Sicherheitslücken zeigt.

Ein Microkernel betreibt dagegen eine minimale Menge an Diensten und kann auf günstigen MCUs ohne MMU sowie mit sehr geringem Speicherbedarf laufen. Der Microkernel unterstützt auch einfache virtuelle Speicherprozesse, die die Zukunft des IoT bilden. Der Betrieb von Middleware und Anwendungskomponenten in geschützten Bereichen bietet eine weit skalierbare, robuste Umgebung für IoT-Entwickler.

Bild 1 zeigt den Unterschied zwischen einem Microkernel und einem monolithischen Ansatz. Die meisten neuen Betriebssysteme enthalten Microkernel und laufen auf praktisch jedem Elektronikgerät. Beispiele Microkernel-basierter Betriebssysteme sind INTEGRITY, Neutrino und PikeOS. Es ist wenig wahrscheinlich, dass Linux monolithisch wäre, wenn es heute entwickelt würde. Linus Torvalds erklärte vor 20 Jahren: „Linux ist monolithisch, und ich stimme zu, dass Microkernel besser sind. Aus theoretischer und ästhetischer Sicht verliert Linux.“

Ein Microkernel und Linux müssen sich nicht gegenseitig ausschließen: Eine vernünftige IoT-Firmware-Strategie kann den Echtzeit-, Platzbedarf- und Robustheitsvorteil eines Microkernels und die Gerätetreiber, Middleware und Applikationsverfügbarkeit von Linux nutzen. Diese Koexistenz wird durch Systemvirtualisierung ermöglicht.

Bild 2 beschreibt die Virtualisierung als Dienst des Microkernels. Beispiele für Microkernel-Hypervisoren sind der INTEGRITY-Multivisor von Green Hills Software und einige Varianten des L4-Microkernels.

POSIX-konforme Microkernel wie INTEGRITY und Neutrino gestatten es, Software-Subsysteme in Partitionen nach offenem Standard zu platzieren und die Zuordnung der Subsysteme zwischen dem Microkernel und Linux einfach zu modifizieren.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 42473994 / Embedded Betriebssysteme)