Das Yocto Project

Das Yocto Project

Linux in
Embedded-Projekten

Bis zur Jahrtausendwende hat sich Open-Source-Software in vielen Branchen etabliert und schnell ihre heutige Position eingenommen. Aktuell befindet sich Open-Source-Software auf den meisten Servern, die das Internet antreiben, im Einsatz. Ferner arbeitet eine Vielzahl von Datenbanken auf dem Open-Source-Betriebssystem Linux. Auch Anbieter von Cloud Services nutzen oft Open-Source-Software. Darüber hinaus verzeichnet Linux eine zunehmende Verwendung für verschiedene Embedded-Anwendungen. Allerdings ist der Markt sehr fragmentiert.
Anwender, die die für ihr Embedded-Projekt eine Linux Distribution suchen, stehen vor einem labyrinthartigen Auswahlprozess. Im Wesentlichen gibt es vier Alternativen: Die erste stellt eine PC-basierte Linux Distribution wie Fedora, Ubuntu oder Debian dar. Diese sind kostenlos bzw. als kommerzielle Versionen wie Red Hat oder Suse verfügbar. Für Embedded-Projekte erweisen sich diese Distributionen oft nicht als ideal, denn sie wurden für PC-Hardware entwickelt, enthalten vielen, für Desktop- und Server-Anwendungsfälle notwendigen Packages und bieten oft einen zu großen Bedarf an Arbeits- und Festplatten-Speicher. Außerdem unterstützen sie häufig verschiedene CPU-Architekturen und SoCs gar nicht oder nur sehr unzureichend. Eine zweite Möglichkeit heißt ‚Do-it-Yourself‘. Entwickler können Linux Kernel Sources von kernel.org, die GNU Toolchain von fsf.org und andere erforderliche Software von den Internet-Seiten der verschiedenen Linux Foundation Workgroups herunterladen, und dann selbst integrieren und testen. Diese Vorgehensweise nutzt dann, wenn Entwickler sich Fertigkeiten und Know-how aneignen möchten. Meist verschlingt diese Vorgehensweise jedoch mehr Zeit als Auftraggeber üblicherweise bei einem professionellen Projekt bieten. Eine dritte Option ist, die Linux Distribution von Halbleiter- oder Board-Herstellern zu nutzen. Allerdings haben solche Lösungen oft einen limitierten Fokus. Hinzu kommt, dass es oft Updates, Fehlerbehebungen oder Support fehlen. Dies kann dazu führen, dass Anwender auf abgekoppelten oder forked Versionen auf der Strecke bleiben. Hingegen stehen Entwicklern in der letzten Kategorie der kommerziellen Embedded Linux Distributionen sorgfältig getestet und einschließlich umfassender Wartung und Updates zur Verfügung, die Projekt-Manager meist für unerlässlich halten. Damit eignen diese sich besser für Embedded-Projekte als die drei anderen aufgeführten Varianten. Ihnen liegt ein sehr straffer Entwicklungszeitplan zugrunde, wie es oft bei Consumer-Geräten der Fall ist. Aber auch langlebige Investitionsgüter, vor allem im Industrieanlagenbereich oder bei Luftfahrt oder Medizintechnik, sind mit kommerziellen Linux-Distributionen aufgrund lang-jähriger Wartung und Updates gut beraten. Ausgehend von den Anforderungen für Wartung, Support, Updates und Security Fixes, können Projekt-Manager – zusätzlich zu Geschäftsrisiken- und Kostenbetrachtungen – eine Entscheidung treffen, welche der oben genannten Vorgehensweise sich am besten eignet.

Herausforderung Fragmentierung

Doch es geht um mehr. Falls z.B. Commercial Linux die Wahl ist, werden vielleicht nicht alle Leistungsmerkmale vom aktuellen Board Support Package (BSP) unterstützt. Oder ein Hersteller stellt ein BSP zur Verfügung, das nur eine ältere Linux Version unterstützt. So ist Linux mittlerweile Bestandteil vieler Embedded-Projekte, es stellt jedoch Entwickler aufgrund seiner Fragmentierung – Kernel-Version, Bibliotheken, Compiler, Middleware, BSPs und SDKs – vor zunehmend schwieriger werdenden Herausforderungen. Bei der Entwicklung eines skalierbaren Linux-Systems spielen die Verfügbarkeit mehrerer zusammen passender Teile von Software (Versionsabhängigkeit) und ein Set zugehöriger Tools eine Rolle. Nimmt man den üblichen Open-Source Input wie einen Kernel, User Space Packages und Patches zusammen mit spezifischen Anforderungen wie eine Filesystem-Größe und Kernel-Konfiguration und nutzt die geeignete Cross-Toolchain, können für verschiedene Hardware-Architekturen sehr unterschiedliche Ergebnisse entstehen. Die Herausforderungen sind zahlreich. So gibt es kein gemeinsames Repository für Elemente wie den Kernel oder den User Space. Auch gibt es keinen gemeinsamen Satz an Methoden für Cross-Architekture-Builds. Unterschiedliche Tools wie Toolchains, Makefiles, Compiler oder Debuggers sind ebenfalls charakteristisch. Ferner fehlen gemeinsame Build Systeme. Zudem gibt es viele Beteiligte: Projekt-Manager, Siliziumanbieter, die Chips verkaufen möchten, Board-Hersteller mit Custom oder Standard Designs wie Compact PCI oder ATCA im Programm, Consulting oder Engineering Firmen, Software-Hersteller, die Tools verkaufen, oder auch Silizium-Anbieter mit speziellen und optimierten Toolchains für spezifische Hardware im Angebot. Ein Best-Case-Szenarion erfordert, dass alle Beteiligten sich auf ihre jeweiligen Stärken konzentrieren und Beiträge für Open Source dementsprechend leisten.

Yocto Project: Aktuelle Version in einer Linux-Distribution

Diese Idee verbirgt sich hinter dem Yocto Project – die kontinuierlich aktualisierten Versionen bzw. die wesentlichen Spezifikationen, die Basisbestandteile in einer Linux-Distribution enthalten sind: Kernel, Toolchain und Build System sowie Packages. Das Yocto Project ist keine Embedded Linux Distribution. Es ist im Wesentlichen ein Programm bzw. eine Plattform, die alle Beteiligten auffordert, Beiträge zu leisten, um die gemeinsame Entwicklung mit einem gemeinsamen Set an Tools und Praktiken voranzutreiben und so Entwickler zu unterstützen, eine größere Cross-Platform-Kompatibilität und -Interoperabilität zwischen Komponenten zu erreichen. Mit der Linux Foundation, dem Industriekonsortium zur Förderung von Linux, wurde das Yocto Project 2010 als Open-Source Kollaborationsprojekt von Hardware-Herstellern, Open-Source-Herstellern und Elektronikunternehmen gegründet. Es gilt Verfahren, Werkzeuge und Methoden bereitzustellen, die Entwickler bei der Realisierung hardware-unabhängiger Embedded Linux-Systeme unterstützen. Durch die Bereitstellung eines gemeinsamen Build Systems und gemeinsam entwickelter Technologien liefert das Yocto Project Entwicklern einen wertvollen Startpunkt und hilft ihnen, doppelte Arbeiten und unnötigen Wartungsaufwand zu vermeiden. Siliziumhersteller können Treiber für ihre neuesten Chips anbieten. Board-Hersteller ergänzen dies mit Middleware für ein BSP. Kommerzielle Linux Anbieter können eine stabile Linux Distribution mit vielen Packages anbieten, die getestet sind, unterstützt und gewartet werden und auch auf verschiedenen Hardware-Architekturen laufen. Tool-Hersteller können ihre relevante Toolchain in eine bestimmte Yocto-Version integrieren.

Seiten: 1 2Auf einer Seite lesen

Wind River GmbH
www.europe.windriver.com

Das könnte Sie auch Interessieren