The Yocto Project is gaining traction and folks in the industry are generally aware of it, but there still exists a bit of unfamiliarity of the details. What exactly is the Yocto Project? Is it a Linux distribution? How would I use it in your own embedded Linux projects?
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. These tools and methodologies help decrease the complexity and increase the portability of embedded Linux implementations. It is not a Linux distribution similar to what Wind River and other Linux distributors provide.
Many people is currently working on the Yocto Project, including vendors across the hardware and software ecosystem. The objective is to realize greater cross-platform compatibility and component interoperability.
The challenging task relies on the availability of a piece of software and set of associated tools. When taking the usual open source input (a kernel, userspace packages, patches) and your own input (size of the filesystem, kernel configuration), and using the appropriate cross-toolchain would produce different output (one for IA, another for ARM, etc.). Just like cooking! With the same ingredients and tools, you cain either way bake a cake or pull off pizza bread by slightly changing the proportions, temperature and proportions.
Exactly as it happens with the embedded Linux world before using a standardized environment like the Yocto Project you have no common repository forxingredients (kernel, userspace), no common set of recipes for cross-architecture builds, no common tools (toolchain, makefiles, compilers, debuggers), and no common build system to bake all the ingredients together. General terms, it happens with any rising project out there.
What makes it worth it, among many benefits, is the removal of a major part of the effort and cost of packaging a user-friendly, standards-based embedded Linux distribution, allowing to focus on developing cool new features and cutting-edge capabilities. Which for engineers means more fun. For customers, the value proposition is no vendor lock-in if they adopt the freely available Yocto Project infrastructure or engage with vendors like Wind River who embrace the Yocto Project.
The benefits of better interoperability, portability and reuse of our Linux implementation means we can build better stuff cheaper and faster. How great is that? Would you wager on the Yocto project?