Yocto Project

Last updated
Initial release2010;14 years ago (2010)
Stable release
4.3 (Nanbield) / October 1, 2023;5 months ago (2023-10-01)
Repository git.yoctoproject.org
Written inPrimarily Python, Shell
Website yoctoproject.org

The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions 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. [1]

Contents

The Yocto Project's focus is on improving the software development process for embedded Linux distributions. The Yocto Project provides interoperable tools, metadata, and processes that enable the rapid, repeatable development of Linux-based embedded systems in which every aspect of the development process can be customized.

In October 2018, Arm Holdings partnered with Intel in order to share code for embedded systems through the Yocto Project. [2]

Project scope

The Yocto Project has the aim and objective of attempting to improve the lives of developers of customized Linux systems supporting the ARM, MIPS, PowerPC and x86/x86-64 architectures. A key part of this is the OpenEmbedded build system, which enables developers to create their own Linux distribution 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, 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 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 as well as to numerous upstream projects, including the Linux kernel. [3] 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 (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, 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 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. [4]

Governance

The Yocto Project is one of many collaborative projects organized as a non-profit under the banner of the Linux Foundation. [5]

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 [6] ) who has a long history of involvement with many of the project's components and technologies. [7] 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. [8] 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). [9]

Version 3.1 was the first long-term support (LTS) release. [10] Since then, a new LTS release is added every two years.

The 3.1 series and 4.0 were originally planned for two years but extended to four. The next LTS releases are planned for 4 years. [11]

Since version 3.1, the release codenames are names of mountains or passes in the Cumbria county in Northern England. [12]

Legend:
Old version
Older version, still maintained
Current stable version
Latest preview version
Future release
Release [13] CodenameDateSupport
Future release: 5.1Styhead10/202405/2025
Latest preview version of a future release: 5.0 (LTS)Scarthgap04/202404/2028
Current stable version:4.3Nanbield11/202305/2024
Old version, no longer maintained: 4.2Mickledore05/2023 EOL
Old version, no longer maintained: 4.1Langdale10/2022 EOL
Older version, yet still maintained: 4.0 (LTS)Kirkstone05/202204/2026
Old version, no longer maintained: 3.4Honister11/2021 EOL
Old version, no longer maintained: 3.3Hardknott04/2021 EOL
Old version, no longer maintained: 3.2Gatesgarth11/2020 EOL
Older version, yet still maintained: 3.1 (LTS)Dunfell04/202004/2024
Old version, no longer maintained: 3.0Zeus10/2019 EOL
Old version, no longer maintained: 2.7Warrior04/2019 EOL
Old version, no longer maintained: 2.6Thud11/2018 EOL
Old version, no longer maintained: 2.5Sumo04/2018 EOL
Old version, no longer maintained: 2.4Rocko10/2017 EOL
Old version, no longer maintained: 2.3Pyro04/2017 EOL
Old version, no longer maintained: 2.2Morty10/2016 EOL
Old version, no longer maintained: 2.1Krogoth04/2016 EOL
Old version, no longer maintained: 2.0Jethro10/2015 EOL
Old version, no longer maintained: 1.8Fido04/2015 EOL
Old version, no longer maintained: 1.7Dizzy10/2014 EOL
Old version, no longer maintained: 1.6Daisy04/2014 EOL
Old version, no longer maintained: 1.5Dora10/2013 EOL
Old version, no longer maintained: 1.4Dylan04/2013 EOL
Old version, no longer maintained: 1.3Danny10/2012 EOL
Old version, no longer maintained: 1.2Denzil04/2012 EOL
Old version, no longer maintained: 1.1Edison10/2011 EOL
Old version, no longer maintained: 1.0Bernard2011 EOL
Old version, no longer maintained: 0.9Laverne2010 EOL

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. [14]

See also

Related Research Articles

<span class="mw-page-title-main">Debian</span> Linux distribution based on free and open-source software

Debian, also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software and optionally non-free firmware or software developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Debian (0.01) was released on September 15, 1993, and its first stable version (1.1) was released on June 17, 1996. The Debian Stable branch is the most popular edition for personal computers and servers. Debian is also the basis for many other distributions that have different purposes, like Proxmox for servers, Ubuntu or Linux Mint for desktops, Kali for penetration testing, and Pardus and Astra for government use.

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution 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 of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. It is a wrapper around the system calls of the Linux kernel for application use. Despite its name, it now also directly supports C++. It was started in the 1980s by the Free Software Foundation (FSF) for the GNU operating system.

Enea AB is a global information technology company with its headquarters in Kista, Sweden that provides real-time operating systems and consulting services. Enea, which is an abbreviation of Engmans Elektronik Aktiebolag, also produces the OSE operating system.

<span class="mw-page-title-main">MontaVista</span> Software company

MontaVista Software is a company that develops embedded Linux system software, development tools, and related software. Its products are made for other corporations developing embedded systems and end products using Linux, such as automotive electronics, telecommunications and communications equipment, mobile phones, and other electronic devices and infrastructure. MontaVista also supplies Linux-based solutions and software to products that are software-only, such as enterprise networking, virtual network functions in Network Functions Virtualization, and appliance software that is hosted on a cloud hosting environment.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

Unified Extensible Firmware Interface is a specification that defines the architecture of the platform firmware used for booting the computer hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O. UEFI replaces the BIOS which was present in the boot ROM of all personal computers that are IBM PC compatible, although it can provide backwards compatibility with the BIOS using CSM booting. Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI's practices and data formats mirror those of Microsoft Windows. In 2005, UEFI deprecated EFI 1.10.

Wind River Systems, also known as Wind River, is an Alameda, California–based company, subsidiary of Aptiv PLC. The company develops embedded system and cloud software consisting of real-time operating systems software, industry-specific software, simulation technology, development tools and middleware.

Computer operating systems based on the Linux kernel are used in embedded systems such as consumer electronics, in-vehicle infotainment (IVI), networking equipment, machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

<span class="mw-page-title-main">OpenEmbedded</span>

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. OpenEmbedded is the recommended build system of the Yocto Project, which is a Linux Foundation workgroup that assists commercial companies in the development of Linux-based systems for embedded products.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux 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 (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

The Consumer Electronics Linux Forum was a non-profit organization to advance the Linux operating system as an open-source software platform for consumer electronics (CE) devices. It had a primarily technical focus, working on specifications, implementations, conferences and testing to help Linux developers improve Linux for use in CE products. It existed from 2003 to 2010.

Quilt is a software utility for managing a series of changes to the source code of any computer program. Such changes are often referred to as "patches" or "patch sets". Quilt can take an arbitrary number of patches as input and condense them into a single patch. In doing so, Quilt makes it easier for many programmers to test and evaluate the different changes amongst patches before they are permanently applied to the source code.

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 Gentoo Linux distribution. BitBake existed for some time in the OpenEmbedded project until it was separated out into a standalone, maintained, distribution-independent tool. BitBake is co-maintained by the Yocto Project and the OpenEmbedded project.

<span class="mw-page-title-main">Linaro</span> Engineering organization for open source software

Linaro is an engineering organization that works on free and open-source software such as the Linux kernel, the GNU Compiler Collection (GCC), QEMU, power management, graphics and multimedia interfaces for the ARM family of instruction sets and implementations thereof as well as for the Heterogeneous System Architecture (HSA). The company provides a collaborative engineering forum for companies to share engineering resources and funding to solve common problems on ARM software. In addition to Linaro's collaborative engineering forum, Linaro also works with companies on a one-to-one basis through its Services division.

OpenWrt is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All components have been optimized to be small enough to fit into the limited storage and memory available in home routers.

<span class="mw-page-title-main">Buildroot</span>

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 a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.

<span class="mw-page-title-main">OpenHarmony</span> Family of open-source operating systems based on HarmonyOS

OpenAtom OpenHarmony, or abbreviated as OpenHarmony (OHOS), is a family of open-source operating systems based on HarmonyOS derived from LiteOS, donated the L0-L2 branch source code by Huawei to the OpenAtom Foundation. Similar to HarmonyOS, the open-source distributed operating system is designed with a layered architecture, which consists of four layers from the bottom to the top, i.e., the kernel layer, system service layer, framework layer, and application layer.

References

  1. "The Linux Foundation Announces Yocto Project Steering Group and Release 1.0".
  2. "Arm cozies up to Intel for second time in a week – this time to borrow tools from Yocto Project for Mbed Linux". The Register .
  3. "Yocto Project Linux Kernel Development Manual". docs.yoctoproject.org. Retrieved 2021-04-21.
  4. "Yocto Project Documentation". docs.yoctoproject.org. Retrieved 2021-04-21.
  5. "Projects - The Linux Foundation". The Linux Foundation. Retrieved 2018-01-05.
  6. "Linux Foundation Fellows - The Linux Foundation". The Linux Foundation. Retrieved 2022-09-08.
  7. "Technical Leadership | Yocto Project". www.yoctoproject.org. Retrieved 2018-01-05.
  8. "Members – Yocto Project". www.yoctoproject.org. Retrieved 2018-07-31.
  9. "Releases - Yocto Project". wiki.yoctoproject.org. Retrieved 2018-07-31.
  10. "Yocto Project Long Term Support Announced". 26 February 2020.
  11. "Releases - Yocto Project".
  12. "List of hill passes in the Lake District" . Retrieved 27 February 2024.
  13. Yocto Project Release Activity
  14. "Branding Program – Yocto Project". www.yoctoproject.org. Retrieved 2018-07-31.