Wenn Sie ein neues Projekt für ein Embedded-Produkt beginnen, ist eine der wichtigsten Entscheidungen, die Sie treffen müssen, neben der Wahl des richtigen System on Module, die Wahl des am besten geeigneten Betriebssystems (OS). So wie das Fundament eines Gebäudes dessen Widerstandsfähigkeit und Langlebigkeit bestimmt, kann die Wahl des Betriebssystems die Leistung, Skalierbarkeit und Benutzerfreundlichkeit des Endprodukts erheblich beeinflussen. Bei der Vielzahl der verfügbaren Optionen kann es schwierig sein, die Vorteile und Nachteile jeder einzelnen abzuwägen.

In diesem Artikel fassen wir die Hauptmerkmale, Vor- und Nachteile von Yocto, Boot to Qt, Debian und Android für den Einsatz als Embedded-Softwareplattformen in „Smart-Produkte“-Designs zusammen. Unser Ziel ist es, Ihnen Einblicke zu bieten, die Sie bei der Wahl des richtigen Betriebssystems für Ihr Embedded-Projekt leiten und Ihnen helfen können, eine fundierte Entscheidung zu treffen.

Hinweis: In der Regel gibt es zusätzliche Überlegungen, die hier nicht aufgeführt sind, und auch die Entwickler werden unterschiedliche Meinungen haben. Im Folgenden finden Sie eine allgemeine Zusammenfassung der Vor- und Nachteile der einzelnen Optionen.

 

Yocto-Projekt

Das Yocto-Projekt ist ein Open-Source-Kollaborationsprojekt, das Entwicklern hilft, individuelle Linux-basierte Systeme unabhängig von der Hardware-Architektur zu erstellen.

Hier sind einige der wichtigsten Stärken von Yocto:

  • Der Hauptvorteil von Yocto ist die Möglichkeit, Pakete aus dem Quellcode mithilfe eines „Manifests“ zu erstellen. Mit diesem Manifest können Sie ein Image leicht neu erstellen, selbst wenn es vor fünf Jahren erstellt wurde, wodurch eine konsistente Replikation bestimmter Softwareversionen gewährleistet wird.
  • Die Softwarekonfiguration auf allen eingesetzten Geräten ist bekannt und kann anhand des Quellcodes reproduziert werden.
  • Da alle Pakete aus dem Quellcode erstellt werden, können sie nach Bedarf für die Anwendung gepatcht werden.
  • Die Paketversionen werden auf allen eingesetzten Geräten angeglichen.
  • Updates sind atomar und gegen Stromausfall geschützt, wenn Frameworks wie SWUpdate oder Mender verwendet werden.
  • Das endgültige Image kann leicht mit nur den für die Anwendung erforderlichen Paketen angepasst werden, was zu einer effizienteren Nutzung von RAM/Speicher/CPU führt.

Yocto hat jedoch seine eigenen Herausforderungen:

  • Für diejenigen, die Yocto noch nicht kennen, mag die Lernkurve steil erscheinen.
  • Die Erstellung eines Images kann zeit- und ressourcenaufwändig sein, da die meisten Pakete aus dem Quellcode kompiliert werden.
  • Neue Pakete können erstellt und auf einem laufenden Gerät installiert werden. Wenn das neue Paket jedoch zusätzliche Abhängigkeiten erfordert, muss möglicherweise das gesamte Image neu erstellt und auf dem Zielgerät neu installiert werden.

Hinweis: Yocto-Images enthalten normalerweise kein Paketverwaltungssystem wie apt-get. Um neue Pakete zu installieren, müssen sie dem Image-Rezept hinzugefügt und das Image neu erstellt werden. Dadurch wird sichergestellt, dass das Betriebssystem-Image durchgängig aus einer Manifestdatei reproduzierbar ist – eine bewusste Entscheidung, die auf Stabilität und Vorhersehbarkeit abzielt.

 Sehen Sie sich ein Beispiel eines Yocto-Releases für DART-MX8M-PLUS basierend auf dem NXP i.MX 8M Plus Prozessor.

 

 

DART-MX8M-PLUS System on Module (SoM)

DART-MX8M-PLUS System on Module

 

 

Boot to Qt

Boot to Qt (ausgesprochen „Cute“) ist eine Lösung, die von The Qt Company angeboten wird. Es hat seine Wurzeln im Yocto-Projekt und ist eine optimierte Schicht über Yocto, die für den Einsatz von Qt-basierten Anwendungen auf Embedded-Geräten optimiert ist.

  • Boot to Qt baut auf Yocto auf, sodass die meisten der Vor- und Nachteile von Yocto (wie bereits erwähnt) auch hier gelten.
  • Boot to Qt wird von Qt bereitgestellt und bietet daher die beste Integration für Qt-basierte Anwendungen.
  • Boot to Qt bietet eine neuere Qt-Version als die gleiche Version von Yocto (z. B. Boot to Qt Hardknott gegenüber Yocto Hardknott).
  • Qt bietet eine übersichtliche Dokumentation zur Erstellung von Toolchains für die Anwendungsentwicklung auf Linux- und Windows-Computern. Dies vereinfacht den Prozess für Entwickler, die an Windows-Entwicklungsumgebungen gewöhnt sind.
    Hinweis: Boot to Qt unterstützt auch die Anwendungsentwicklung unter macOS durch die Verwendung der Docker-basierten Toolchains von Qt. Weitere Informationen finden Sie unter: https://doc.qt.io/Boot2Qt/b2qt-requirements-mac.html

Hinweis: Wenn Sie ein kommerzielles Produkt mit Boot to Qt als Embedded-Betriebssystem entwickeln, ist eine kommerzielle Lizenzierung erforderlich, daher sollten Sie sich über die Lizenzbedingungen von Qt informieren.

Sehen Sie sich ein Beispiel für ein Boot to Qt-Release für DART-MX8M-PLUS basierend auf dem NXP i.MX8M Plus Prozessor.

 

Debian GNU/Linux

Debian GNU/Linux ist eine renommierte Linux-Distribution, die für ihre Robustheit und die vereinfachte Softwareverwaltung durch das Advanced Package Tool (APT) bekannt ist. Ihr langjähriger Ruf macht sie zu einer vertrauenswürdigen Wahl für viele Entwickler verschiedener Anwendungen.

  • Debians Advanced Package Tool (APT) erleichtert das schnelle Prototyping, indem es Entwicklern die mühelose Installation einer großen Anzahl vorkompilierter Pakete und ihrer Abhängigkeiten ermöglicht. Wie das Debian-Image von Variscite zeigt, bedeutet diese Fähigkeit, dass Pakete auf dem Zielgerät genauso installiert werden können wie auf einem herkömmlichen Computer.
  • Als eine der ältesten und beliebtesten Linux-Distributionen verfügt Debian über eine große, aktive Community und eine umfangreiche Dokumentation, die bei der Fehlersuche und beim Gewinnen von Erkenntnissen hilfreich sein kann.
  • Es ist einfach, kleinere Updates über neue Debian-Pakete zu installieren, und die Verfügbarkeit von Debian-Repositorien stellt sicher, dass Softwarepakete mühelos aktualisiert werden können, sodass die Systeme sicher und auf dem neuesten Stand bleiben.

Die Verwendung von Debian GNU/Linux für Embedded-Geräte bringt jedoch einige Herausforderungen mit sich:

  • Je nachdem, wann die Updates ausgeführt werden, können die Paketversionen auf den verschiedenen Geräten nicht übereinstimmen. Dies kann die Reproduzierbarkeit von Problemen auf Systemen im praktischen Einsatz erschweren.
  • Updates sind nicht atomar. Daher kann ein Stromausfall während eines Updates zu einer Fehlkonfiguration führen.
  • Die Stabilität von Debian kann in bestimmten Kontexten oder Anwendungsfällen ein Problem darstellen, insbesondere da Sie als Entwickler die Pakete nicht aus dem Quellcode kompilieren. Dies kann es schwierig machen, ein Image in der Zukunft zu reproduzieren.

Sehen Sie sich ein Beispiel für ein Debian-Release für DART-MX8M-PLUS an.

 

Android OS

Ursprünglich für mobile Geräte entwickelt, hat Android seinen Einfluss auf verschiedene Plattformen und Geräte ausgeweitet. Seine weite Verbreitung und die Vertrautheit der Entwickler machen es zu einer beliebten Wahl für viele Projekte, die über Telefone und Tablets hinausgehen.

  • Viele Kunden werden sich für Android entscheiden, weil ihre Entwickler damit vertraut sind und bereits ein auf Android basierendes Ökosystem haben.
  • Android OS unterstützt von Haus aus Widevine und ermöglicht die Entschlüsselung von DRM-geschützten Inhalten wie Videos.
  • Die Dominanz von Android auf dem Telefon- und Tablet-Markt hat zu einem riesigen Pool an Entwicklerressourcen und Community-gesteuerten Lösungen geführt.

Allerdings ist Android OS, wie seine Gegenstücke, mit gewissen Herausforderungen verbunden:

  • In Bezug auf die Systemressourcen wie RAM, CPU und Speicherplatz hat Android in der Regel höhere Anforderungen im Vergleich zu den anderen zuvor besprochenen Betriebssystemalternativen.
  • Ein Upgrade von einer Android-Version auf eine andere kann sehr komplex sein und erfordert manchmal die Neupartitionierung von Speichergeräten.

Sehen Sie sich ein Beispiel für ein Android-Release für DART-MX8M-PLUS an.

 

Zusammenfassung

Die Wahl des richtigen Betriebssystems für ein Embedded-Projekt ist entscheidend. Jede Option – Yocto, Boot to Qt, Debian und Android – bringt ihre eigenen Stärken und Herausforderungen mit sich. Es ist wichtig, die Wahl des Betriebssystems auf die spezifischen Anforderungen und langfristigen Ziele Ihres Projekts abzustimmen. Zwar gibt es nicht die eine Lösung für jedes Szenario, doch können fundierte Entscheidungen den Weg für ein erfolgreiches Produkt ebnen.