The Yocto Project is an open source collaboration project that provides templates, tools, and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. It was founded in 2010 as a collaboration among many hardware manufacturers, open-source operating systems vendors, and electronics companies to bring some order to the chaos of embedded O.S. Linux development.
The driving force for the workgroup creation was the necessity to reduce their work duplication, providing resources and information catering to both new and experienced users. The Yocto Project combines the convenience of ready-to-run Linux Distribution with flexibility of a custom Linux operation system stack.
The Yocto Project and The Linux Foundation
The Yocto Project is a Linux Foundation workgroup and is defined as:
The Yocto Project provides open source, high-quality infrastructure and tools to help developers create their own custom Linux distributions for any hardware architecture, across multiple market segments. The Yocto Project is intended to provide a helpful starting point for developers.
– The Linux Foundation (https://www.linuxfoundation.org)
The workgroup is composed by a set of members that supports the project and composes part of the Advisory Board. Among those are silicon manufacturers, software vendors and open source projects.
Besides the workgroup, the Yocto Project is also an open source project that provides templates, tools and methods to help companies and individuals create Linux-based operating systems for embedded products.
It’s important to understand that the Yocto Project is not an embedded Linux distribution itself. It’s a set of tools to help you create your own distribution by enabling a high degree of flexibility and customization while not interfering with the product development. This is particularly important when you are building Linux-based embedded products that must have full control over the software running on your device.
The Yocto Project involves hundreds of developers around the world
The Yocto Project involves hundreds of developers around the world, including a wide variety of members from huge corporations to small companies and individuals.
Among the companies which support the project are silicon vendors such as Freescale, Intel, Texas Instruments and Renesas as well as software operating system vendors such as O.S. Systems, Enea, Wind River, MontaVista and Mentor Graphics. The group of companies supporting the project is growing at a fast pace. Companies that normally compete with each other, are coming together and cooperating in a symbiotic manner, making sure the project is compatible with almost all popular processors available for embedded designs.
This synergy is accomplished because the Yocto Project is hosted by the Linux Foundation, which guarantees that the project remains independent from any particular company or vendor.
In addition to the workgroup, the Yocto Project is an open source project that provides templates, tools and methods to help companies and individuals create tailored Linux-based operating systems regardless of the hardware architecture. The open source part of the project is managed by a Linux Foundation fellow to ensure that the technical decisions are not made to benefit a specific member of the workgroup.
OpenEmbedded & Poky, a successful couple
The Poky build system started as a subset of the OpenEmbedded build system focusing on a more polished and stable code base, however with a limited set of supported BSPs. Its reduced size allowed the Poky build system to start to develop eye-catching technologies, such as IDE plugins and QEMU integration, which are still in use today.
The Poky build system became a very attractive project for software vendors as it offered a very extensible metadata and a reliable task scheduler. This environment enabled vendors to reuse and customize metadata.
In this scenario vendor independence raised as important aspect and, so the need for a neutral organization to manage this effort was urgent. Around November 2010, the Yocto Project was announced by the Linux Foundation.
The OpenEmbedded Project and the Yocto Project
The Yocto Project is the umbrella project which provides the infrastructure and manages the resources provided by its members. The vendor independence allows for competing vendors to work together in a common and friendly development environment. The Yocto Project and OpenEmbedded Project consolidated their efforts on a core build system called OpenEmbedded-Core, usually referred as OE-Core.
OpenEmbedded-Core was created out of the best of both original Poky and OpenEmbedded build systems, emphasizing and increasing the reuse of components, metadata, and sub-modules to form a core build system which is common among all different OpenEmbedded-derived.
The Poky build system was also reworked to use the OpenEmbedded-Core. The extra BSPs and configurations were moved to a set of Yocto Project’s specific metadata sub-modules. This rework eased a much bigger collaboration between OpenEmbedded Project and Yocto Project and reduced work duplication. This is the Poky build system used by the Yocto Project as reference build system.
The OpenEmbedded Project and the Yocto Project share the maintenance of OpenEmbedded-Core, pushing for a very community-driven core build system while allowing active interaction of companies through the Yocto Project contributors and Advisory Board members.
In the next post “Benefits for your products” we will discuss the motivations that can lead you towards the Yocto Project, independently if you are an user, a developer or a company entrepreneur covering topics such as its advantages, risk reduction and platform reuse.