The Yocto Project (http://www.yoctoproject.org/) is an embedded Linux distribution builder that makes use of several other open source projects. In this book, the generic term Yocto refers to the Yocto Project.
A Linux distribution is a collection of software packages and policies, and there are hundreds of Linux distributions available. Most of these are not designed for embedded systems and they lack the flexibility needed to accomplish target footprint sizes and functionality tweaks, as well as not catering well for resource constrained systems.
The Yocto Project, in contrast, is not a distribution per se; it allows you to create a Linux distribution designed for your particular embedded system. The Yocto Project provides a reference distribution for embedded Linux, called Poky.
The Yocto Project has the BitBake and OpenEmbedded-Core (OE-Core) projects at its base. Together they form the Yocto build system which builds the components needed for an embedded Linux product, namely:
With these, the Yocto Project covers the needs of both system and application developers. When the Yocto Project is used as an integration environment for bootloaders, the Linux kernel, and user space applications, we refer to it as system development.
For application development, the Yocto Project builds SDKs that enable the development of applications independently of the Yocto build system.
The Yocto Project makes a new release every 6 months. The latest release at the time of this writing is Yocto 2.4 Rocko, and all the examples in this book refer to the 2.4 release.
A Yocto release comprises the following components:
And for the different supported platforms:
- Prebuilt toolchains
- Prebuilt images
The Yocto 2.4 release is available to download from http://downloads.yoctoproject.org/releases/yocto/yocto-2.4/.