The Yocto Project is a
Linux Foundation
The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. Additi ...
collaborative
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project whose goal is to produce tools and processes that enable the creation of
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s for
embedded and IoT software that are independent of the underlying architecture of the embedded hardware. The project was announced by the Linux Foundation in 2010 and launched in March, 2011, in collaboration with 22 organizations, including
OpenEmbedded
OpenEmbedded is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The OpenEmbedded framework is developed by the OpenEmbedded community, which was formally established in 2003. Ope ...
.
The Yocto Project's focus is on improving the software development process for
embedded Linux
Operating systems based on the Linux kernel are used in embedded systems such as consumer electronics (eg. set-top boxes, smart TVs and personal video recorders (PVRs)), in-vehicle infotainment (IVI), networking equipment (such as routers, switch ...
distributions. The Yocto Project provides interoperable tools, metadata, and processes that enable the rapid, repeatable development of Linux-based
embedded systems
An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
in which every aspect of the development process can be customized.
In October 2018,
Arm Holdings
Arm is a British semiconductor and software design company based in Cambridge, England.
Its primary business is in the design of ARM processors (CPUs). It also designs other chips, provides software development tools under the DS-5, RealView an ...
partnered with
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
in order to share code for embedded systems through the Yocto Project.
Project scope
The Yocto Project has the aim and objective of attempting to improve the lives of developers of customized
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
systems supporting the
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
,
MIPS,
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
and
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
/
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mod ...
architectures. A key part of this is the
OpenEmbedded
OpenEmbedded is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The OpenEmbedded framework is developed by the OpenEmbedded community, which was formally established in 2003. Ope ...
build system, which enables developers to create their own
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
specific to their environment. The Yocto Project and OpenEmbedded Project share maintainership of the main parts of the OpenEmbedded build system: the build engine,
BitBake
BitBake is a make-like build tool with the special focus of distributions and packages for embedded Linux cross compilation, although it is not limited to that. It is inspired by Portage, which is the package management system used by the Gent ...
, and the core metadata, OpenEmbedded-Core. The Yocto Project provides a reference implementation called
Poky, which contains the OpenEmbedded build system plus a large set of recipes, arranged in a hierarchical system of layers, that can be used as a fully functional template for a customized embedded operating system.
There are several other sub-projects under the project umbrella which include CROPS, pseudo, the
matchbox
Phillumeny (also known as phillumenism) is the hobby of collecting different match-related items: matchboxes, matchbox labels, matchbooks, matchcovers, matchsafes, etc.
Matchbox
A matchbox is a box made of cardboard or thin wood and designe ...
suite of applications, and many others. One of the central goals of the project is interoperability among these tools.
The project offers different sized targets from "tiny" to fully featured images which are configurable and customisable by the end user. The project encourages interaction with upstream projects and has contributed heavily to OpenEmbedded-Core and
BitBake
BitBake is a make-like build tool with the special focus of distributions and packages for embedded Linux cross compilation, although it is not limited to that. It is inspired by Portage, which is the package management system used by the Gent ...
as well as to numerous upstream projects, including the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
. The resulting images are typically useful in systems where embedded Linux would be used, these being single-use focused systems or systems without the usual screens/input devices associated with desktop Linux systems.
As well as building Linux systems, there is also an ability to generate a toolchain for
cross compilation and a
software development kit
A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to ...
(SDK) tailored to their own distribution. The project tries to be software and vendor agnostic. Thus, for example, it is possible to select which package manager format to use (
deb,
rpm
Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or with the notation min−1) is a unit of rotational speed or rotational frequency for rotating machines.
Standards
ISO 80000-3:2019 defines a unit of rotation as the dimensionl ...
, or
ipk).
Within builds, there are options for various build-time
sanity/regression tests, and also the option to boot and test certain images under
QEMU
QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest ...
to validate the build.
The project is known for making good documentation a priority and attempts to update documentation for each release, retaining all documents for current and archived releases on the website, as the documentation can change significantly with any release.
Governance
The Yocto Project is one of many collaborative projects organized as a non-profit under the banner of the
Linux Foundation
The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. Additi ...
.
The project's governance is divided loosely into administrative and technical arms, although many members participate in both camps.
At a technical level, the project is overseen by the project architect Richard Purdie (a Linux Foundation Fellow) who has a long history of involvement with many of the project's components and technologies. The architect maintains a hierarchy of maintainers for the different components of the system, much as the Linux kernel is maintained.
The administrative arm consists of an advisory board made up of representatives from the project's member organizations, including several major silicon vendors, commercial operating system vendors that use Yocto Project as their upstream, corporate users, as well as representatives from groups such as software consultants and community members. The member organizations of this board provide resources to the project. There are also several advisory board working groups that handle administrative functions for the project such as finance, infrastructure, advocacy and outreach, and community management.
Releases
Major releases occur about every 6 months (April and October).
Version 3.1 was the first
Long-term_support
Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where i ...
(LTS) release, initially supported for two years. Since then, a new LTS release is added every two years.
In 2021, support for version 3.1 was extended to two more years until 2024. This was done as an experiment, and to leave time to switch to the newer LTS version, but was not a commitment to do the same for all LTS releases.
Branding Program
The Yocto Project Branding Program provides an opportunity to associate the value of using the Yocto Project with a company or product. The Yocto Project Branding Program defines steps to register organizations as Yocto Project Participants, and content as Yocto Project Compatible. Yocto Project Participant is appropriate for organizations who use and support the Yocto Project publicly. Yocto Project Compatible is appropriate for products, BSPs, and other OE-compatible layers, and related open-source projects, and is open to Yocto Project member organizations.
See also
*
Buildroot
Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on ...
References
External links
*
Deciding between Buildroot and Yocto LWN.net
LWN.net is a computing webzine with an emphasis on free software and software for Linux and other Unix-like operating systems. It consists of a weekly issue, separate stories which are published most days, and threaded discussion attached to ...
, April 6, 2016, by Nathan Willis
{{Embedded systems
Build automation
Embedded Linux
Linux Foundation projects