Login
Newsletter
Werbung

Do, 16. November 2017, 15:00

Warum Yocto eine gute Wahl für eingebettete und IoT-Projekte ist

Gründe, Einsatzgebiete und den grundlegenden Aufbau von Yocto erläutert dieser Artikel.

Allgemeines über eingebettete Systeme und Linux

Softwareentwickler in den Bereichen Embedded und Internet of Things (IoT) sehen sich mit einer Vielzahl von Optionen konfrontiert, die die Auswahl von Betriebssystemen (OS) zur Unterstützung ihrer Designs betreffen. Entscheidungen bezüglich der Hardware und der Tools haben offensichtlich einen großen Einfluss auf den Erfolg eines Projekts. Wenn man die Komponenten, die für das Design am besten geeignet sind, frei auswählen kann, und es keine Einschränkungen aufgrund historischer Entscheidungen oder Abwärtskompatibilität gibt, lohnt es sich, vorab einige Zeit in die Recherche der verschiedenen Möglichkeiten zu investieren, um sie verstehen und die beste Wahl für das Projekt zu treffen.

Wenn der Schwerpunkt des Designs in erster Linie auf elektromechanischen Systemen mit einfacher Steuerungslogik liegt, kann Linux zu viel des Guten sein und die Verwendung eines Echtzeit-Betriebssystems oder einer Regelschleife ist vielleicht besser geeignet. Wenn der Fokus des Systems mehr auf der Datenverarbeitung und Vernetzung liegt, ist eher Linux sinnvoll. Wenn das System Elemente von beiden enthält, kann man sicherlich auch die elektromechanischen Aspekte in Linux implementieren, da der Linux-Kernel wohl mehr Peripheriegeräte unterstützt als alle anderen Systeme. Ein komplexeres System erfordert möglicherweise ein Dual-OS-Setup, das entweder asynchrones Multiprocessing auf einem Multicore-Chipsatz oder mehrere Chips verwendet. Die Kombination eines kleinen 8- oder 16-Bit-Mikrocontrollers mit einer RTOS- oder kundenspezifischen Regelkreis-Software mit einem 32- oder 64-Bit-Mikrocontroller unter Linux ist eine oft genutzte Designlösung, die das Beste aus beiden Ansätzen bietet.

Ein sehr guter Grund, Linux verwenden, ist seine Allgegenwart. Bücher, Videos und andere Schulungsmaterialien sind leicht verfügbar, und das Suchen eines Blogs oder einer Konferenzpräsentation, die einen ähnlichen Anwendungsfall beschreibt, ist nur eine Websuche entfernt. Ressourcen wie stackoverflow.com und quora.com sind voll von interessanten, zeitnahen Informationen, die während der Schulungs- und Designzyklen hilfreich sein können. Darüber hinaus sind Online-Kurse von Anbietern wie edx.org, coursera.org und udacity.com verfügbar (viele kostenlos), die eine Vielzahl von Linux-Themen abdecken.

Die Menge der verfügbaren Software auf Linux-Systemen ist enorm. Für jede Komponente, die auf extern definierten Protokollen, APIs usw. basiert, findet man wahrscheinlich eine Implementierung, die unter Linux läuft. Für viele solcher Software-Komponenten findet man eine dynamische Entwicklergemeinde mit Korrekturen, Support und Feature-Entwicklung. Die Integration dieser Komponenten in ein Linux-Design ist routinemäßig unkompliziert, hängt jedoch vom Verteilungs- oder Build-System ab. Glücklicherweise verfügen die allgemeinen Verteilungs- und Build-Systeme auch über aktive Gemeinschaften, die Unterstützung für Elemente bereitstellen können, die standardmäßig nicht integriert sind.

Auch an talentierten Entwicklern mit Linux-Expertise mangelt es nicht. Aufgrund der breiten Akzeptanz von Linux-basierten Designs durch die Industrie ist es relativ einfach, Entwickler mit einschlägiger Erfahrung zu finden. Aus Sicht des Personalchefs ist es ein deutlicher Vorteil, wenn man Entwickler findet, die bereits in den benötigten Technologien geschult sind. Aus der Sicht der Entwickler ist es ein großer Vorteil, an Technologien zu arbeiten, die sie interessant finden, und ihr Fachwissen anzuwenden. Kurz gesagt, das passende Personal zu finden wird mit Linux und verwandten Technologien erheblich vereinfacht.

Es gibt eine Vielzahl von Distributions- und Build-Systemen, mit denen man ein Embedded-Linux-System entwickeln kann. Viele Desktop-Distributionen können für die Verwendung in einer Umgebung mit begrenzten Ressourcen reduziert werden, und Systeme wie Ubuntu haben Varianten, die speziell auf IoT-Geräte abzielen. Die Raspberry Pi-Plattform verwendet ein angepasstes Debian-Image als primäres Ziel-Image. Darüber hinaus gibt es mehrere Optionen für das Cross-Compilieren eines vollständigen Linux-Systems. Yocto, OpenWRT und Buildroot sind die drei häufigsten. Diese Systeme werden in der Regel auf einer Standard-Linux-Desktop-Distribution gehostet und erstellen ein Linux-System für das ausgewählte Zielgerät. Änderungen, die erforderlich sind, werden zuerst in ein Zielimage auf dem Linux-Desktop integriert und von dort aus auf dem Zielinstallationsmedium bereitgestellt.

In unseren folgenden Diskussionen werden wir das Yocto-Projekt genauer beschreiben und erklären, warum wir glauben, dass es eine gute Wahl für eingebettete Linux-Designs ist, die für das IoT vorgesehen sind.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung