What Is Yocto Project and Why You Should Use It for Embedded Linux Development

Introduction
Yocto Project :
- can build toolchains,
- can build bootloaders,
- can build kernels,
- can build root filesystems
- can generate an entire Linux Distribution containing binary packages that can be installed at runtime.
Primarily, Yocto Project is a group of recipes using a combination of:
- Python
- shell scripts
Yocto Project includes also a task scheduler called “BitBake” that produces whatever you have configured from recipes.
A bit of history
- 2003 and “OpenEmbedded” Yocto Project’s started from OpenEmbedded whose objective was to port Linux towards hand-held devices. It was developed, and continues to be maintained by an enthusiastic community of programmers.
- 2005 and “Poky” Richard Purdie, at that time a developer at OpenedHand, created a fork of OpenEmbedded, which approached with a more conservative choice of packages for the purpose of maintaining stability over a longer period of time. Richard named his version Poky.
- 2008 Intel purchases OpenedHand
- 2010 Open Embedded and Poky combines into a new project OpenEmbedded Core (OE-Core)
Components of Yocto Project
OpenEmbedded-Core This is shared with OpenEmbedded. This is the core metadata.
BitBake This is the task scheduler.This is shared with OpenEmbedded.
Poky This is the reference distribution.
Documentation This is composed by the user’s manuals and the developer’s guides for each component.
Toaster This is a web-based interface to BitBake and its metadata.
ADT Eclipse This is a plugin for Eclipse.
Why would you use Yocto Project?
Many System-on-Chip (SoC) vendors provide BSPs (board-support-packages) for their devices appropriate for Yocto Project. Meta layers can also be used to create extended or just different build systems.
A system on a chip (SoC) is an integrated circuit (also known as a “chip”) that integrates all or most components of a computer or other electronic system. Example: Raspberry PI, Beaglebone Black.
The Yocto Project has:
- a branding and
- a compatibility testing scheme.
Both from above are to ensure that there is interoperability between components of a system built with Yocto Project.
The Yocto Project has a branding and compatibility testing scheme to ensure that there is interoperability between components.
Stable releases and support
Usually, there is a release of the Yocto Project every six months: in April and October. Yocto Project releases are known by their code names,but it is good to know the version number of the Yocto Project and poky.
Last Yocto Project releases as of August 2020

Complete List of Yocto Project Releases: https://wiki.yoctoproject.org/wiki/Releases
Period of support
The stable releases are supported with security and critical bug fixes for the current release cycle and the next cycle.
Commercial Support For extended commercial support over several years, one has to go with operating system vendors like Mentor Graphics, Wind River etc.

