Yocto Projekt

Die Erstellung flexibler, individueller Betriebssysteme für eingebettete und IoT-Geräte

Eckdaten

Status:
Laufend
Investition
759.000,00 €
Investitionsjahr(e)
2023, 2024

Das Yocto-Projekt hilft Entwickler*innen bei der Erstellung von individuellen Betriebssystemen mit offenen Komponenten, die unabhängig von der Hardware-Architektur eines Geräts funktionieren und daher in einer Vielzahl von Kontexten verwendet werden können. Das Yocto-Projekt bietet eine flexible Reihe von Tools und einen Ort, an dem Entwickler*innen von eingebettete Systeme auf der ganzen Welt Technologien, Software-Stacks, Konfigurationen und Best Practices austauschen können. Diese Tools können verwendet werden, um maßgeschneiderte Linux-Images für eingebettete und Internet-of-Things (IoT)-Geräte zu erstellen, oder überall dort, wo ein angepasstes Linux-Betriebssystem benötigt wird.

Das Projekt arbeitet an und unterstützt die Projekte BitBake und OpenEmbedded Core. BitBake ist ein Build-Tool und OpenEmbedded Core ist eine Bibliothek, die einfache „Rezepte“ für die Erstellung von Systemkomponenten wie glibc, gccsystemd bereitstellt. Die Produktentwicklung im IoT-Sektor schreitet rasant voran und schafft einen hohen Bedarf an flexiblen technischen Lösungen wie dem Yocto-Projekt. Eingebettete Systeme werden zum Beispiel in der Medizintechnik, in Waschmaschinen, Flugzeugen, Autos, Kühlschränken, Fernsehern, Routern, Satelliten, Mobiltelefonen und Unterhaltungselektronik eingesetzt.

Aus Kostengründen wird für einen bestimmten Zweck oft eine optimierte, gemischte Hardware-Software-Implementierung und Konfiguration gewählt. Während des Build-Prozesses werden „Rezepte“ verwendet, um Abhängigkeiten zu erfassen, um die Software auf einer Plattform für die Verwendung auf anderen Plattformen zu kompilieren (Cross-Compilation) und um sie für die Installation auf dem lokalen oder dem Zielgerät zu verpacken.

Warum ist das wichtig?

Das Yocto-Projekt zählt aufgrund seiner Position innerhalb des Software-Ökosystems als kritische Software-Infrastruktur. Es gibt mehrere Branchen, die darauf aufbauen und es als ihre Softwaregrundlage verwenden. Zu den Anwender*innen im privaten Sektor gehören Automotive Grade Linux (AGL), die BMW Group, OpenBMC sowie einige Unternehmen, die Betriebssysteme anbieten. AGL nutzt das Yocto-Projekt, um die AGL Unified Code Base (UCB) zu erstellen, die von den Mitgliedsunternehmen in verschiedenen vernetzten Automodellen verwendet wird. Auch die BMW Group verwendet die Software in einigen ihrer Fahrzeuge. Das OpenBMC-Projekt nutzt das Yocto-Projekt als Grundlage und wird wiederum von vielen Hardware-Herstellern in ihren Servern verwendet (Dell, Microsoft, Meta, IBM und andere). Einige Unternehmen, die Betriebssysteme verkaufen, bauen ihre Produkte ebenfalls auf dem Yocto-Projekt auf und beliefern Telekommunikationsunternehmen, die das Yocto-Projekt zum Beispiel in Kommunikations-Basisstationen einsetzen.

Das Yocto-Projekt ist für Verbraucher*innen normalerweise nicht sichtbar, aber es ist für Entwickler*innen und Produkte in einer Vielzahl von Geräten und Branchen sehr wichtig. Es besteht ein erhebliches öffentliches Interesse daran, eine sichere und robuste Grundlage für all diese Bereiche zu schaffen. Der Anwendungsrahmen des Projekts ist groß, und die dem Projekt zur Verfügung stehenden Ressourcen sind im Vergleich zum Umfang der Anfragen und der Nutzung begrenzt. Die zunehmende Verwendung des Projekts bedeutet, dass spezialisierte und qualifizierte Ingenieur*innen für Anpassungen sehr gefragt sind. Und auch die Mitgliedsunternehmen des Projekts haben Schwierigkeiten, die Zeit ihrer Ingenieur*innen für die Unterstützung des Projekts, auf das sie angewiesen sind, zur Verfügung zu stellen.

Darüber hinaus hat das Yocto-Projekt eine enge Beziehung zu OpenEmbedded, der Build-Architektur, die das Projekt eingesetzt hat. Die Build-Architektur oder das Framework beschreibt das umfassende Set an kompatiblen Tools, Skripten, Metadaten und „Rezepte“, die OpenEmbedded zur Verfügung stellt, um die Erstellung von angepassten Linux-Distributionen zu vereinfachen und zu automatisieren. Die Verwendung dieses Frameworks ermöglicht Modularität, Anpassung und Flexibilität für Entwickler*innen.

Es gibt eine OpenEmbedded-Community und eine Non-Profit-Organisation, die diese Architektur und Technologie betreut. Sie hat keine Mitgliederfinanzierung wie das Yocto-Projekt, daher hat das Yocto-Projekt einen Großteil der Arbeit an OpenEmbedded finanziert. Die beiden Projekte teilen sich Code-Komponenten wie BitBake und OpenEmbedded-Core, sodass die Arbeit an einem Projekt direkt dem anderen zugutekommt. Aufgrund der Möglichkeit, alles aus dem Quellcode zu bauen, einschließlich der Toolchain, hat OpenEmbedded oft Verwendung in akademischen sowie Forschungs- und Entwicklungsumgebungen gefunden, da es uneingeschränktes Experimentieren auf allen Ebenen des Quellcodes erlaubt. Viele der vom Sovereign Tech Fund in Auftrag gegebenen Aktivitäten tragen zu OpenEmbedded-Core und damit zu den vielen Open-Source-Communitys bei, die darauf aufbauen.

Die beauftragten Arbeiten verbessern die langfristige Nachhaltigkeit des Projekts, indem sie eine neue Generation von Entwickler*innen anziehen.

Was unterstützen wir?

Die Aufträge im Rahmen des Sovereign Tech Fund zielen darauf ab, die Effizienz, Sicherheit, Nutzungsfreundlichkeit und das Engagement der Entwickler*innen des Yocto-Projekts zu verbessern.

  1. Verbesserungen des Build-Prozesses und des Workflows
    • Verbesserungen des Kern-Workflow (Build-Tools, Arbeitsabläufe und Binärunterstützung).
    • Yocto Project Reference Binary Distribution (Workflow-Verbesserungen und Richtlinien).
    • Patchtest, ein Werkzeug, das automatisierte Tests von Code-Patches ermöglicht, die über Mailinglisten eingereicht werden.
  2. Sicherheits- und Qualitätsverbesserungen
    • Verbesserung der Sicherheitsprozesse, des Sicherheitsteams und der SBOMs.
    • Fehlerbehebungen und Verbesserungen im Tooling (Devtool, Recipetool, Pseudo- und Quality-of-Life-Funktionen).
  3. Integration und Verbesserungen der Benutzerfreundlichkeit
    • Toaster Updates und Verbesserungen (Web UI für BitBake).
    • VSCode Integration mit Yocto (Entwicklungsfunktionen und Integrationsverbesserungen).
  4. Standardisierung des Layer-Managements
    • Einbindung von OpenEmbedded Core Best Practices in Meta-OpenEmbedded.
    • Entwicklung von Standard-Tools für die Verwaltung von Yocto-Layern (Standardisierung von Layer-Tools).

More technologies

Alle Technologien