Suchen

Systemplattformen Das richtige Betriebssystem für Embedded-Applikationen wählen

| Autor / Redakteur: Colin Walls * / Franz Graser

Nur die einfachsten Embedded-Systeme kommen ohne Kernel aus. Die Entscheidung für oder gegen ein Betriebssystem lässt sich anhand der CPU-Architektur und der erforderlichen Software aufschlüsseln.

Firmen zum Thema

Das Spektrum der Embedded-Geräte kann mit einem Diagramm dargestellt werden, das die Komplexität der CPU – im Großen und Ganzen die Datenbusbreite – mit der Softwarekomplexität vergleicht
Das Spektrum der Embedded-Geräte kann mit einem Diagramm dargestellt werden, das die Komplexität der CPU – im Großen und Ganzen die Datenbusbreite – mit der Softwarekomplexität vergleicht
(Grafik: Mentor Graphics)

Das Verhältnis von CPU-Komplexität im Vergleich zur Komplexität der Software lässt sich grob in vier Quadranten aufteilen. Rechts oben – komplexe Software auf einem High-end-Prozessor – ist das traditionelle Aufgabengebiet eines Echtzeitbetriebssystems und anderer voll ausgestatteter Betriebssysteme zu sehen.

Auf einer weniger leistungsfähigen CPU kann es bei komplexer Software hilfreich sein, einen einfachen Kernel einzusetzen. Nur wenn auf einem Low-End-Gerät einfache Software läuft, ist kein Kernel erforderlich.

Manchmal wird jedoch ein leistungsfähiger Chip verwendet, um einfache Software zu verarbeiten, insbesondere wenn die CPU maximale Verarbeitungsgeschwindigkeit erreichen muss. In diesem Fall ist kein Kernel erforderlich.

Dieser kann aber sinnvoll sein, um die Skalierbarkeit der Softwarearchitektur zu verbessern und die Komplexität zukünftiger Anwendungen zu steigern. Werden moderne heterogene Multicore-Geräte für Embedded-Applikationen genutzt, dann wird die Situation komplizierter. Jeder Kern erfordert ein Betriebssystem und dieses kann sich von Kern zu Kern unterscheiden. Wird ein Betriebssystem benötigt, so sind vier Optionen zu berücksichtigen:

  • Auswahl eines kommerziellen High-end-Betriebssystems wie Open-Source-Linux oder einer Embedded-Variante von Windows;
  • Auswahl eines kommerziellen Echtzeitbetriebssystems (wenn deterministisches Verhalten erforderlich ist), von denen es viele verfügbare Optionen gibt;
  • Einsatz eines freien Echtzeitbetriebssystems, diese sind weit verbreitet;
  • Entwicklung und Implementierung eines firmeneigenen Betriebssystems.

Die Auswahl eines Embedded-Betriebssystems ist ein komplexer Prozess, der auf mehreren Ebenen betrachtet werden muss. Wie lang ist die Lebensdauer des Geräts? Wie gut ausgebildet ist das technische Team, das das Projekt betreut? Wie sind die Time-to-Market- und Budget-Anforderungen? Ist die Zusammenarbeit mit einem externen Auftragnehmer erwünscht?

Kommerzielles Betriebssystem: Pro und Contra

Es gibt viele kommerzielle Betriebssysteme auf dem Markt und diese Produkte haben zahlreiche Vor- und Nachteile.

Vorteile: Die meisten heute verfügbaren kommerziellen Echtzeitbetriebssysteme stammen von etablierten, seriösen Anbietern. Wichtige Faktoren sind die Größe des Unternehmens, Laufzeit des Produkts und die Anwenderbasis. Bei der Auswahl eines Echtzeitbetriebssystems gehen sowohl der Käufer als auch der Verkäufer eine langfristige Bindung ein.

Ein Aspekt dieser Beziehung ist eine mögliche CPU-Migration in der Zukunft. Bei einem etablierten Echtzeitbetriebssystemanbieter kann sich der Anwender darauf verlassen, dass der Anbieter neue Geräte rechtzeitig unterstützt und seine Produkte so entwickelt, dass sie die Portierung vereinfachen. Gute Dokumentation ist essentiell und kann von einem seriösen kommerziellen Echtzeitbetriebssystemanbieter erwartet werden.

Nachteile: Jedes Embedded-System ist anders: CPU, Speicher und Peripheriekomponenten variieren von Gerät zu Gerät. Systeme unterscheiden sich aber auch auf ihrer kommerziellen Seite. Der endgültige Preis eines Geräts wirkt sich, zusammen mit der produzierten Stückzahl, auf die Lizenzoptionen des Betriebssystems aus. In einigen Fällen sind ein paar Euro pro Gerät angemessen, in anderen, bei denen sehr große Stückzahlen zu erwarten sind, könnte eine lizenzfreies Geschäftsmodell ideal sein.

Ein weiterer häufiger Einwand besagt, dass ein kommerzielles Betriebssystem zu viel Funktionalität hat. Dies kann zwar der Fall sein, meist wird aber ein Betriebssystem mit verschiedenen optionalen Komponenten angeboten. In den frühen Tagen der kommerziellen Echtzeitbetriebssysteme waren die Produkte monolithische Code-Teile. Als jedoch die Funktionalität anstieg, entwickelte sich die Idee der Skalierbarkeit. Ein skalierbares Betriebssystem unterstützt nur die Funktionalität, die für das endgültige System erforderlich ist.

Vor- und Nachteile freier Echtzeitbetriebssysteme

Dieser Abschnitt befasst sich mit den heute verfügbaren kleineren, leicht herunterladbaren Echtzeitbetriebssystemen.

Vorteile: Ein offensichtlicher Anreiz ist, dass im Vorfeld und auch beim späteren Einsatz keine Kosten entstehen, weil keine Lizenzgebühren anfallen. Freie Echtzeitbetriebssysteme enthalten fast immer Quellcode. Dieser ist als Referenz sicherlich nützlich, da die Dokumentation eingeschränkt sein kann und Support schwer zu bekommen ist. Er ist auch Voraussetzung für die Konfiguration und Portierung auf neue Hardwareumgebungen bis hin zum Anwender.

Freie Echtzeitbetriebssysteme verfügen oft über eine große Anhängerschaft. Daraus entsteht eine lebendige Online-Community, deren Unterstützung frei verfügbar ist. Obwohl das sehr attraktiv und nützlich ist, bleibt die Langlebigkeit ein wichtiger Aspekt. Diese Art des Community-Supports konzentriert sich in der Regel auf aktuelle Softwareversionen. Wenn ein Produkt eine frühere Version nutzt, kann es bei der Fehlersuche unter Umständen schwierig werden.

Nachteile: Der Einsatz eines Betriebssystems in einem Embedded-Gerät stellt eine langfristige Bindung dar. Deshalb ist auch die Frage nach einer dauerhaften Unterstützung wichtig. Kann der Anwender sich bei einem freien Betriebssystem darauf verlassen, dass die Community für lange Zeit Support bietet? Und ist die Dokumentation aktuell und verfügbar?

Bei freier Software gibt es auch eine psychologische Herausforderung. Da der Quellcode leicht verfügbar ist, meinen Entwickler, dass er keinen finanziellen Wert hat und wollen ihn deshalb verbessern. Dies kann zu zahlreichen ähnlichen, aber unterschiedlichen Betriebssystemversionen in verschiedenen Projekten führen. Die Wartung wird plötzlich zu einer sehr großen Herausforderung.

(ID:42870020)