Um die Probleme, die durch die zunehmende Fragmentierung von Linux im Bereich der Embedded-Systeme in den letzten Jahren entstanden sind, zu lösen, wurde 2010 von mehreren Embedded-Hardware- und Software-Anbietern das Yocto-Projekt ins Leben gerufen. Anstatt eine monolithische Linux-Distribution bereitzustellen, die sich nur schwer auf die vielen speziellen Anforderungen von Embedded-Systemen anpassen lässt, unterstützt Yocto die Anpassung über eine skalierbare und modulare Ebenenarchitektur, welche die Inkompatibilitäten zwischen den verschiedenen Konfigurationen minimiert.
Der Schlüssel zur Konfigurierbarkeit von Yocto ist das Build-Werkzeug BitBake, das mit Hilfe von Metadaten nicht nur den Kernel, sondern auch das Root-Dateisystem und die dazugehörige Anwendungs-Software für ein endgültiges System Image konfiguriert. BitBake verwaltet alle notwendigen Schritte für den Bau eines System Image anhand der vom Entwickler bereitgestellten Definitionen, welche die verschiedenen Konfigurationsoptionen und Abhängigkeiten festlegen. Das Nutzen sogenannter Meta-Layer und deren Konfigurierbarkeit erlaubt einen schnellen Wechsel zwischen unterschiedlichen Hardware-Plattformen mittels eines einfachen Rebuild. Alle Hardware-nahen Änderungen wie der Umstieg auf eine andere Prozessorvariante oder der Wechsel von einem Netzwerk-Adapter zu einem anderen werden vom Compiler und den Build-Werkzeugen verwaltet, die sich zu diesem Zweck auf die entsprechenden Hardware-nahen Meta-Layer beziehen.
Bei anderen Plattformen müssen die Entwickler bei einem Wechsel der Prozessoren oder Hardware-Plattformen häufig große Teile ihrer Embedded-Applikation bzw. der darunterliegenden Systemkonfiguration umschreiben. Mit einer Yocto-basierten Infrastruktur genügt zumeist das Ändern oder Einfügen einer Codezeile in der Systemdefinition sowie das Board Support Package.
Durch den Einsatz von Application Frameworks wie Qt lässt sich die Portabilität sogar noch deutlich steigern. So kann hiermit ein großer Teil der Anwendungsentwicklung auf einem Desktop-PC erfolgen und von dort aus mit minimalen Codeänderungen direkt in das Embedded-System auf Qt übertragen werden. Auf diese Weise lassen sich zahlreiche Prototypen von Benutzerschnittstellen erstellen, bevor die endgültige Hardware fertig ist.
Die Einrichtung einer eigenen, Yocto-basierten Infrastruktur ist jedoch nicht ganz einfach. BitBake bietet hierfür eine riesige Anzahl an Optionen. Wer unter Yocto eigene Plattformdefinitionen erstellen möchte, muss sich deshalb ausführlich informieren. Eine gut abgestimmte Kombination aus BSPs und Metadaten erleichtert zwar den Wechsel zwischen Hardware-Plattformen. Doch selbst für Entwickler, die bereits mit den Grundoptionen vertraut sind, ist die Entwicklung einer eigenen Architektur, die alle Erwartungen in punkto Portabilität und Integrationsfähigkeit erfüllt, kompliziert und zeitaufwendig. Zudem erfordert eine Yocto-Umgebung für die Entwicklung und die Cross-Compilierung einen Linux-Host, der in einer typischen Windows-Umgebung meist nicht zur Verfügung steht.