0 Min. Lesedauer

Yocto vs. Ubuntu – die Betriebssysteme im Vergleich

Marcel Kämmerling

Veröffentlicht am 25 Nov, 2022

Yocto vs. Ubuntu - the operating systems in comparison

Übersicht: Betriebssystem

Eine Schlüsselentscheidung bei der Entwicklung von IoT-Projekten und Edge-Infrastrukturen betrifft die Software und damit verbunden die Wahl eines geeigneten Betriebssystems. Ein Betriebssystem ist eine Systemsoftware auf niedriger Ebene, die die Hardware- und Softwareressourcen des Computers verwaltet und die Grundfunktionen des Computers, wie Ressourcenverwaltung, Speicherverwaltung, Steuerung von Peripheriegeräten und Vernetzung, erheblich erleichtert. Das Betriebssystem dient als Schnittstelle zwischen der Hardware und Software des Computers und ist daher eine wichtige Komponente eines Systems. Auf dem Markt sind mehrere Betriebssysteme erhältlich, wobei Microsoft Windows im Desktop-Umfeld das bekannteste ist. Verlässt man den Bereich der Desktop-Computer, werden häufig Betriebssysteme verwendet, die auf dem Linux-Kernel basieren.

Open-Source-Betriebssystem: Linux

Linux ist eine Gruppe von Unix-ähnlichen Betriebssystemen, die auf dem Linux-Kernel basieren. Es gehört zur Familie der freien und Open-Source-Software und ist in der Regel kostenlos in einer Linux-Distribution wie Ubuntu verfügbar. Eine Linux-Distribution ist eine Auswahl bestimmter Software und eines Linux-Kernels, die aufeinander abgestimmt sind, um ein nutzbares Betriebssystem zu bilden. Es wird am häufigsten für Server und eingebettete Systeme verwendet, ist aber auch in einer Desktop-Version verfügbar. Da Linux Open Source ist, kann es sogar auf Kernel-Ebene angezeigt und überprüft werden. Edge Computing und IoT beinhalten häufig eingebettete Systeme, sodass Hardware und Software entsprechend den individuellen Anforderungen entsprechend integriert werden müssen. Dafür ist Linux die beste Option, da es das Schreiben grundlegender Treiber auf Kernel-Ebene ermöglicht, um diese Anforderungen zu erfüllen.

Insbesondere in der Welt der eingebetteten Systeme kann die Größe einer vollständigen Ubuntu-Distribution ausreichen, um den begrenzten Speicher der Platine stark einzuschränken, bevor Sie überhaupt mit der Installation zusätzlicher Software oder dem Sammeln von Daten beginnen können. Wenn es also um datenintensive Anwendungen geht, ist ein Betriebssystem mit geringem Platzbedarf erforderlich. Hier kommt Yocto ins Spiel: Das Ziel des Yocto-Projekts ist es, optimierte Software für hochspezifische eingebettete Anwendungen bereitzustellen.

Yocto und der Unterschied zu Ubuntu

Zunächst ist es wichtig zu verstehen, dass Yocto keine Linux-Distribution ist. Tatsächlich heißt es auf der Website des Yocto-Projekts: „Es ist keine eingebettete Linux-Distribution, es erstellt seine eigene.“ Im Gegensatz dazu ist Ubuntu eine vollständige Linux-Distribution für allgemeine Computerzwecke. Da Ubuntu und andere Debian-basierte Distributionen auf allgemeine Computer- und Programmierzwecke ausgerichtet sind, sind sie eine gute Wahl für eine Entwicklungsumgebung, in der Code möglicherweise geändert und Prototypen häufig geändert werden müssen.

Yocto ermöglicht es, die Größe des Betriebssystems auf das zum Ausführen des Systems erforderliche Maß zu reduzieren. Yocto ist modular aufgebaut und erfordert ein SDK zum Erstellen einer Distribution. In diesem Zusammenhang wird Yocto häufiger als Metadistribution bezeichnet und kann als eine Sammlung von Bibliotheken, Abhängigkeiten, Konfigurationswerten und Klassen betrachtet werden, die zusammengestellt werden, um ein benutzerdefiniertes Linux-Laufzeitimage zu erstellen.

Das Yocto-Projekt ist ein Open-Source-Kollaborationsprojekt, das Entwicklern hilft, kundenspezifische Linux-basierte Systeme unabhängig von der Hardwarearchitektur zu erstellen. Yocto bietet einen flexiblen Satz von Tools und einen Raum, in dem Embedded-Entwickler weltweit Technologien, Software-Stacks, Konfigurationen und Best Practices austauschen können, um kundenspezifische Linux-Images für Embedded- und IoT-Geräte oder überall dort zu erstellen, wo ein kundenspezifisches Linux-Betriebssystem benötigt wird.

„Ubuntu kann als Tool unter „Betriebssysteme“ kategorisiert werden, während Yocto unter „Infrastruktur-Build-Tools“ kategorisiert wird.“

Kriterium Ubuntu Yocto
Anwendungen Allgemeiner Gebrauch
Oft Desktop-Umgebung
Eingebettet, individuell
Größe 7 bis 8 GB ≈ 2 GB
Fußabdruck Enthält nicht benötigte Softwarepakete

Große Standfläche
Nur notwendige Softwarepakete enthalten,

Geringstmöglicher Platzbedarf
Verwendung Rapid Prototyping, Proof of Concept während der Entwicklung Produktionsreifes Betriebssystem für eingebettete Systeme
Aufbau Ist bereits einsatzbereit Die besten Ergebnisse werden erzielt, wenn alles individuell eingerichtet wird
Pakete hinzufügen Einfache Handhabung durch apt-get [Paketname] über die Konsole Erfordert einen vollständigen Image-Neuaufbau und eine Neuinstallation
Image erstellen Die Verteilungskomponente ist bereits installiert
Die Bilderzeugung erfolgt schnell
Bietet das Werkzeug zur inkrementellen Image-Erstellung
Wartbarkeit Die Wartung erfolgt durch die Desktop-Community
Support und Portierung müssen manuell erfolgen, wenn benutzerdefinierte Pakete verwendet werden
Das Yocto-Projekt bietet langfristige Unterstützung,

Ebenen können einige Korrekturen und Updates erfordern,

Entwickelt für kontinuierliche Integration
Rollout / OTA-Updates Große Datenmengen werden an Geräte im Feld gesendet

Hoher Datenverbrauch
Geringe Datenmenge, die an Geräte im Feld gesendet wird

Geringer Datenverbrauch

Abschluss

Wenn es um die Entscheidung zwischen Yocto oder Ubuntu geht, dürfte das Urteil relativ eindeutig sein. Wenn Codes entwickelt, ein Proof-of-Concept erstellt und frühe Prototypen getestet werden, sollte Ubuntu verwendet werden. Wenn Code vollständig getestet ist und ein funktionierender Prototyp auf einem Embedded Board getestet werden soll, sollte Yocto verwendet werden, da dies Vorteile in Bezug auf Geschwindigkeit und Speicher bietet.

Ein weiterer Punkt, bei dem das Yocto-Projekt die Nase vorn hat, ist die Möglichkeit, die Größe des Betriebssystems individuell anzupassen. Gerade bei Device-Management-Lösungen, die für Remote-Updates von IoT- und Edge-Geräten im Feld eingesetzt werden, spielt die zu übertragende Datenmenge eine große Rolle. Auch der Platzbedarf auf den Geräten im Feld kann so auf ein Minimum beschränkt werden. Dadurch wird der begrenzte Speicherplatz effizient genutzt und somit können die Ressourcen der Geräte im Feld vollumfänglich ausgenutzt werden. Gerade bei einer großen Anzahl an Geräten führt dies zu deutlichen Kosteneinsparungen.

Experte

Marcel Kämmerling

Technischer Vertriebsingenieur bei Welotec GmbH

Mit einem Bachelor of Engineering von der Hochschule Emden/Leer nutzt er sein Fachwissen in den Bereichen Digitalisierung und Edge Computing, um maßgeschneiderte Lösungen für Kunden zu entwickeln und eine effiziente digitale Transformation voranzutreiben. Marcel verfügt über umfangreiche Erfahrung in den Bereichen Hardware- und Softwarelösungen, agile Produkttests und technische Beratung. Mit Leidenschaft für die Ausbildung der nächsten Generation spielt er eine Schlüsselrolle bei der Erweiterung des technischen Wissens seines Teams und seiner Partner.

Marcel Kämmerling, Technical Sales Engineer at Welotec, expert in digitalization, edge computing, and technical consulting, with a focus on efficient digital transformation and knowledge sharing.

Verwandte Produkte