Login
Newsletter
Werbung

Do, 16. November 2017, 15:00

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

Entwicklungskonzept von OpenEmbedded und Yocto

OpenEmbedded

Entwicklungskonzept von OpenEmbedded und Yocto

Vorstellung von Yocto

Das Yocto-Projekt definiert sich selbst als »ein Open-Source-Projekt, das Vorlagen, Werkzeuge und Methoden bereitstellt, mit denen man benutzerdefinierte Linux-basierte Systeme für eingebettete Produkte unabhängig von der Hardware-Architektur erstellen kann.« Es entspricht ungefähr dem Konzept von Desktop-Linux-Distributionen. Das ist jedoch eine gewisse Vereinfachung. Yocto wird besser als Meta-Distribution bezeichnet. Es handelt sich um eine Sammlung von Rezepten, Konfigurationswerten und Abhängigkeiten, die zum Erstellen eines benutzerdefinierten Linux-Images verwendet werden, das auf die speziellen Anforderungen zugeschnitten ist.

Das Yocto-Projekt konzentriert sich auf Mechanismen und lässt den Anwendern alle Freiheiten. Wo Desktop-Distributionen Optionen wie Paketformat und Init-System vorgeben, bietet Yocto Konfigurationspunkte, mit denen man diese passend zu den Anforderungen auswählen kann. Standardmäßig können Benutzer Deb-, RPM-, IPK- oder tar-Paketformate auswählen. Sogar neue kann man hinzufügen, indem man eine benutzerdefinierte bbclass-Datei hinzufügt. In ähnlicher Weise ist die Auswahl des Init-Systems eine einfache Konfigurationsänderung in den Build-Dateien.

Ein Yocto-Build baut zunächst viele der nativen Dienstprogramme, die das Build-System selbst benötigt. Dies wird durchgeführt, um die Abhängigkeiten vom Host-Betriebssystem zu minimieren und einen bekannten Satz von Paketversionen sicherzustellen. Die meisten Konfigurationen erstellen dann eine getestete Cross-Compilation-Umgebung, bevor die Binärdateien für die Zielplattform erstellt werden. Aufgrund der großen Anzahl an Paketen, die für eine Yocto-Konfiguration erstellt werden, kann dies erhebliche Ressourcen und Zeit auf dem Hostsystem beanspruchen.

Die Paketdefinitionen umfassen verschiedene Phasen (z. B. Abrufen, Kompilieren, Installieren, Paketieren) und müssen Laufzeit- oder Compilierzeit-Abhängigkeiten angeben. Der Build wird von einem Manager namens bitbake gesteuert, der für die Verarbeitung der Abhängigkeiten und die Planung der Aufgaben verantwortlich ist. Die Tasks werden parallel ausgeführt, soweit die Hostsystemressourcen und die gegenseitigen Abhängigkeiten zwischen den Tasks das erlauben. Zusätzlich werden die Produkte jeder der Build-Stufen gespeichert, um eine Wiederverwendung für ähnliche Builds zu ermöglichen, was zu einer signifikanten Beschleunigung der Builds führen kann.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung