Android, Linux oder Windows Embedded Compact? Das passende Embedded-Betriebssystem

Android, Linux und Windows Embedded - Ein Überblick über Einsatzgebiete, Vor- und Nachteile.
Android, Linux und Windows Embedded - Ein Überblick

Zwar gibt es viele spezialisierte Echtzeit-Betriebssysteme, aber hier soll der Schwerpunkt auf dem Mainstream liegen – und dazu zählen bei ARM-Architekturen Android, Linux und Windows Embedded Compact. Ein Überblick über Einsatzgebiete, Vor- und Nachteile.

Die Entwicklung von Software für Embedded-Systeme unterscheidet sich meist von der Entwicklung herkömmlicher Anwender-Software. In der Regel müssen spezielle Hardware-Anforderungen und Anwendungsfälle berücksichtigt werden. In den letzten Jahren haben sich für ARM-Architekturen drei Betriebssysteme auf dem Markt durchgesetzt: Windows Embedded Compact, Linux und Android. Linux ist in vielen Fällen die erste Wahl geworden. Es gibt vielseitige Kriterien, die für die Auswahl des richtigen Betriebssystems eine Rolle spielen. Begrenzte Speicherkapazität, Echtzeitanwendung, Peripheriekomponenten, Sicherheitsaspekte, Notwendigkeit von grafischen Benutzeroberflächen und Rechte bzw. Lizenzen sind nur einige von ihnen. Um das richtige Betriebssystem wählen zu können, sollten zunächst die Vor- und Nachteile bekannt sein.

Android

Das Google-System Android findet durch die steigende Komplexität und den hohen Innovationsdruck zunehmend den Weg in industrielle Anwendungsbereiche. Android ist eine Open-Source-Plattform, die aus einem Betriebssystem, Middleware und einigen Applikationen besteht. Basis ist ein Linux-Kernel.

Vorteile:

  • Sehr gutes, modernes Framework für die Benutzeroberfläche
  • Standardisiertes Framework, auf dem immer aufgesetzt werden kann
  • Optimale Kombination aus modernstem Linux-Kernel (durch den Linux-Unterbau) und einfacher Android-Middleware
  • Standardkonform erweiterbar für spezielle Schnittstellen wie CAN, RS-232 oder I2C
  • Keine Festlegung auf bestimmte Hardware (einfache Portierung auf Tablet-PCs bei guter Applikationsentwicklung möglich)
  • Applikations- und GUI-Entwicklung in Java
  • Open Source
  • große Entwickler-Community

Nachteile:

  • Nicht geeignet für Echtzeitanwendungen
  • Sicherheitsstandards sind zwar vorhanden, aber kaum überprüft bzw. zertifiziert
  • Medienbereiche (Audio/Video Codecs) sind Open Source, aber nicht lizenzfrei. Wer beispielsweise MP3/MP4 nutzen möchte, muss mit hohen Lizenzgebühren für die Erstzulassung und Folgekosten rechnen. Ein Ausweg sind eigens entwickelte Codecs wie Ogg Vorbis – Videos müssen hier allerdings zunächst in das richtige Format gebracht werden (das gilt auch für Linux).
  • Neben dem Medienbereich gibt es weitere unklare Patentlagen, daher nicht ohne Risiko verwendbar – gerichtliche Auseinandersetzungen bestehen bereits in großen Android-Projekten.

Linux

Linux besteht aus einem Kernel und dem User Space. Genau wie Android ist auch Linux Open Source. Es wird davon ausgegangen, dass Linux heute eine Führungsrolle in der Verwendung für Embedded-Systeme eingenommen hat.

Vorteile:

  • In Kombination mit Qt lassen sich sehr moderne und leistungsstarke Grafiken entwickeln
  • Individuelle, robuste und sichere Lösungen sehr gut umsetzbar
  • Gleiche Software wie auf großen Anwendergeräten
  • Sehr spezielle Anforderungen können mit Linux erfüllt werden (z. B. Webserver)
  • Entwicklung in Java möglich, allerdings nicht out of the box
  • Open-Source-Lizenz (Quellcode verfügbar)
  • Große Anwendungsvielfalt (fast nichts, das GNU-Tools und Linux nicht können)
  • Gute Sicherheitslösungen (Krypto) – diese müssen aber gut aufgebaut werden
  • Plattformunabhängig – für praktisch alle 32-bit-Prozessoren existiert eine Linux-Portierung

Nachteile:

  • Die Individualität des Betriebssystems ist sowohl ein riesiger Vorteil als auch Nachteil. Es existiert kein Standardweg; daraus resultieren oft lange Pflichtenheft- bzw. Support-Phasen.
  • Echtzeitfähigkeit nicht ohne weiteres gegeben, im Standard aber machbar
  • Die Entwicklung grafischer Oberflächen kann sich schwierig gestalten, wenn andere Wünsche als Qt vorhanden sind

Windows Embedded Compact

Windows Embedded Compact wurde speziell für die Verwendung in Embedded-Systemen entwickelt. Das Betriebssystem unterstützt sowohl x86 als auch ARM-Architekturen.

Vorteile:

  • Zu einem großen Teil kompatibel mit Win32-API
  • .NET compact Framework ermöglicht Applikationen in C# und VB
  • Bestehendes Know-how für Windows-Programmierung schont Ressourcen (insbesondere Einarbeitungszeit)
  • Echtzeitfähig
  • Einfache Entwicklungsumgebung mit Visual Studio
  • Geringe Lizenzkosten, dafür großer Lieferumfang inkl. Drittlizenzen (z.B. Fonts, MP3)

Nachteile:

  • Moderne Programmierung der Benutzeroberfläche ist aufwändig (z.B. mit Silverlight Embedded)
  • Kein WPF (Windows Presentation Foundation)
  • Lizenzkosten
  • langsame Entwicklungszyklen
  • Nur teilweise Open Source