Linux is the leading operating system for Internet of Things (IoT) systems. IoT Developer Survey Results published in April 2018 by the Eclipse IoT Working Group, AGILE IoT, IEEE, and the Open Mobile Alliance, found more than 71 percent of developers use Linux operating systems for their IoT systems. Additionally, Linux leads as the most popular OS for constrained devices (38.7 percent) and edge/gateway devices (64.1 percent).
Although a number of operating systems are available for IoT applications, the reality is, not all of them work for every use case — the best choice may be an embedded OS or a real-time OS, or you may have to find an OS that stays beneath a specific power consumption threshold. You may be able to address this challenge with the Yocto Project.
What The Yocto Project Is — And Isn’t
The Yocto Project isn’t a Linux distribution for embedded systems. Instead, it provides developers with the tools to create custom Linux systems and a community where developers can share technologies and knowledge.
The Yocto Project, launched in 2011, maintains three development elements:
- Integrated tools for embedded Linux systems development, including automated building and testing, board support, license compliance, and component data
- A reference embedded distro named “Poky”
- The OpenEmbedded build system
The Yocto Project, an open source collaboration project managed by its chief architect Richard Purdie, a Linux Foundation Fellow, is independent of its members, including Intel, Texas Instruments, Facebook, ARM, and Comcast.
Members do, however, leverage the project to advance their solutions, such as the Intel and ARM partnership announced last year that will streamline the onboarding process for IoT devices, securely connecting any device to any cloud.
5 Reasons to Use the Yocto Project
In an article on the Yocto Project website, Tracey Erway of Intel shares a comprehensive list of features and benefits to help you decide if using this project is right for you, including:
- It’s widely used. Hardware and software vendors throughout the IoT space provide solutions that support Yocto Project products. It also works on any architecture, and most ODMs, OSV, and chip vendors provide SDKs for use with Yocto.
- It’s easily transferrable to another architecture. It allows you to use the same code across architectures with just a few changes — and you aren’t locked into one supplier.
- Use only what you need. Because The Yocto Project is designed for constrained embedded and IoT devices, you add what’s needed rather than removing components of a default distribution.
- Allows you to build individual packages. With the Yocto Project, you don’t’ have to rebuild an entire image, which makes it easier to test image components.
- It follows a strict release schedule. A predictable schedule allows you to plan your work; you can choose to base your work on the development branch that gives you access to the latest features or the stable branch with standard releases.
The Downside of the Yocto Project
In his article for Embedded.com, Drew Moseley, Technical Solutions Architect for Mender.io, an open source software updater for embedded Linux devices, points out that the Yocto Project comes with a substantial learning curve. The workflow is significantly different than a desktop and server environment, and build times can be significant. He comments that the advantages of the Yocto Project, however, outweigh the downside, and “once you have completed the initial ramp-up,” he writes, “further design efforts will proceed much more quickly.”