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 .
26-439: 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
52-423: 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 it describes a software edition that is supported for months or years longer than the software's standard edition. Short-term support (STS) is a term that distinguishes the support policy for the software's standard edition. STS software has
78-507: A comparatively short life cycle, and may be afforded new features that are omitted from the LTS edition to avoid potentially compromising the stability or compatibility of the LTS release. LTS applies the tenets of reliability engineering to the software development process and software release life cycle . Long-term support extends the period of software maintenance ; it also alters the type and frequency of software updates ( patches ) to reduce
104-496: A flaw occurs in software, it is called a regression . Two ways that a software publisher or maintainer can reduce the risk of regression are to release major updates less frequently, and to allow users to test an alternate, updated version of the software. LTS software applies these two risk-reduction strategies. The LTS edition of the software is published in parallel with the STS (short-term support) edition. Since major updates to
130-519: A highly competitive platform for smartphones and tablets . In July 2012, Android's smartphone market share in the United States was at 52%, reaching 82% worldwide in Q2 2015. Starlink and SpaceX use embedded Linux on their constellations and rockets. With the availability of consumer embedded devices, communities of users and developers were formed around these devices: replacement or enhancements of
156-678: 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
182-631: A stable kernel; the ability to read, modify and redistribute the source code. The technical disadvantages include a comparatively large memory footprint (kernel and root filesystem); complexities of user mode and kernel mode memory access, and a complex device drivers framework. Not every embedded Linux distribution is required to or meets real-time requirements. This is particular relevant for safety critical applications and systems. Projects to develop real-time and safety-critical support are Real-Time Linux ( PREEMPT RT ) and ELISA (under Linux Foundation ). Real Time Linux project aims mainlining
208-402: Is also used as an alternative to using a proprietary operating system and its associated toolchain . The Embeddable Linux Kernel Subset is a Linux distribution that fits on a floppy disk for outdated or low resource hardware . Due to its low cost (freely available source code) and ease of customization, Linux has been shipped in many consumer devices. Devices covering PDAs (like
234-921: 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. Embedded Linux Computer 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 , switches , wireless access points (WAPs) or wireless routers ), machine control , industrial automation , navigation equipment , spacecraft flight software , and medical instruments in general. Because of their versatility , operating systems based on
260-436: 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
286-495: The Linux distribution shipped on the device has often been made possible thanks to availability of the source code and to the communities surrounding the devices. Due to the high number of devices, standardized build systems have appeared, including Yocto , OpenEmbedded , Buildroot , OpenWrt , and LTIB . The advantages of embedded Linux over proprietary embedded operating systems include multiple suppliers for software, development and support; no royalties or licensing fees;
SECTION 10
#1732855762583312-498: The Linux kernel . 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
338-644: The Sharp Zaurus family), TomTom GPS navigation devices, residential gateways like the Linksys WRT54G series or smartphones such as the Motorola exz series, Openmoko handsets, devices running Sailfish OS developed by Jolla like Jolla C and Intex Aqua Fish and the Nokia N900 and Nokia N9 . Android , a Linux-kernel-based operating system acquired and extended by Google and introduced in 2008, has become
364-553: The risk , expense, and disruption of software deployment , while promoting the dependability of the software. It does not necessarily imply technical support . At the beginning of a long-term support period, the software developers impose a feature freeze : They make patches to correct software bugs and vulnerabilities , but do not introduce new features that may cause regression . The software maintainer either distributes patches individually, or packages them in maintenance releases , point releases , or service packs . At
390-407: The Linux kernel can be also found in mobile devices that are actually touchscreen -based embedded devices, such as smartphones and tablets , together with personal digital assistants (PDAs) and portable media players that also include a touchscreen. This is a challenge for most learners because their computer experience is mainly based on GUI ( Graphical user interface ) based interaction with
416-468: The PREEMPT_RT-version. In order for the electronic system to run fully-fledged Linux OS and have multitasking it has to have enough operative memory (or replacing such) and memory management unit implementing virtual addressing to ensure compatibility with software running on Linux. Long-term support Long-term support ( LTS ) is a product lifecycle management policy in which
442-430: The STS edition are published more frequently, it offers LTS users a preview of changes that might be incorporated into the LTS edition when those changes are judged to be of sufficient quality . While using older versions of software may avoid the risks associated with upgrading, it may introduce the risk of losing support for the old software. Long-term support addresses this by assuring users and administrators that
468-535: The Yocto Project. 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
494-417: The conclusion of the support period, the product either reaches end-of-life , or receives a reduced level of support for a period of time (e.g., high-priority security patches only). Before upgrading software, a decision-maker might consider the risk and cost of the upgrade. As software developers add new features and fix software bugs, they may introduce new bugs or break old functionality. When such
520-493: The machine and high-level programming on the one hand and low-level programming of small microcontrollers (MCU) on the other hand while the concept of command line interfaces is widely unknown. The Linux kernel has been ported to a variety of CPUs which are not only primarily used as the processor of a desktop or server computer, but also ARC , ARM , AVR32 , ETRAX CRIS , FR-V , H8300 , IP7000 , m68k , MIPS , mn10300, PowerPC , SuperH , and Xtensa processors. Linux
546-499: 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
SECTION 20
#1732855762583572-495: 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
598-537: 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. Major releases occur about every 6 months (April and October). Version 3.1 was the first long-term support (LTS) release. 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. Since version 3.1,
624-521: The release codenames are names of mountains or passes in the Cumbria county in Northern England. 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
650-465: The software will be maintained for a specific period of time, and that updates selected for publication will carry a significantly reduced risk of regression. The maintainers of LTS software only publish updates that either have low IT risk or that reduce IT risk (such as security patches ). Patches for LTS software are published with the understanding that installing them is less risky than not installing them. This table only lists software that have
676-521: The website, as the documentation can change significantly with any release. The Yocto Project is one of many collaborative projects organized as a non-profit under the banner of the Linux Foundation . 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
#582417