There’s a lot of talk about Yocto and Poky and Angstrom these days. Unfortunately, there’s also a fair amount of confusion in the terms. In some popular websites and presentations, the terms Yocto and Poky seem to be used interchangeably. But there are quite unsubtle differences in the terms, and these differences will continue to grow over time, as other bits and pieces of technology find their way into Yocto. And just what, exactly is Angstrom and how does it relate to Yocto? In this short article, I will attempt to provide some clarity around the various terms being thrown around in the Yocto space.
You might find it interesting to note that it’s not “Yocto” but more properly, it’s the “Yocto Project”. The Yocto Project is an umbrella project covering a fairly wide swath of embedded Linux technologies. It is not a Linux distribution. Taken directly from the Yocto Project website (www.yoctoproject.org) “…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.” There are two key concepts here. First, it is a collaboration. A number of different open source projects have come together under the Yocto Project umbrella. The second key concept is custom. Using technology from the Yocto Project allows you to build a customized embedded Linux distribution that is suitable to your own project, rather than using a cookie-cutter, one-size-fits-all, take-it-or-leave it embedded Linux distribution. One of the stated objectives of the Yocto Project is to make embedded Linux development and customization easier.
Yocto Project Projects
No, that’s not a typo! It is interesting to note that the Yocto Project website currently maintains a list of projects here: www.yoctoproject.org/projects. That page lists ten different projects that currently make up the Yocto Project. They include the Poky “distribution” (it’s arguably more or less than that, depending on your point of view), an Eclipse plugin, and the openembedded core repository of metadata which makes up the bulk of the packages for a typical small embedded Linux distribution. Take a look at that projects page for a detailed look at the Yocto Project’s projects.
So then, what exactly is Poky? Poky can be thought of as a reference distribution, using Yocto Project technology. Some people use the term “build system” to refer to Poky, but I think that’s a misnomer. Certainly there are components within Poky that together make up a build system. Poky is simply one of the projects under the Yocto Project umbrella. Currently, Poky is the most visible and possibly the most active project within the Yocto Project. Today, when someone mentions Yocto, many people tend to think of Poky. Over time, this perception will surely change.
Angstrom is another distribution. Angstrom is based on the OpenEmbedded project, and more specifically, the openembedded-core (often abbreviated simply oe-core) layer. As of the date of this article, you might consider Angstrom and Poky to be close cousins, because Poky is also based on oe-core. But Angstrom is not officially part of the Yocto Project (yet). Discussions are underway to change that relationship to something more like siblings. There was a long-winded discussion on the yocto mailing list about pulling Angstrom under the Yocto Project umbrella. There was general support for doing this, but time will tell whether or not that happens. Angstrom is somewhat different in that the developers call it a binary distribution, in a similar way that you might think of Ubuntu. One primary output of Angstrom builds is a binary package feed, allowing a developer to simply install a package on a compatible ARM target, for example, without having to compile it, in a similar manner that you might use ‘sudo apt-get install <package>’ on a Ubuntu distribution.
The Yocto Project has attracted a significant amount of industry attention, both in terms of developers and end-users. One thing is certain. When you take a look at the Yocto project a year from now, it will probably look different than it does today! There are several distributions that are Yocto derived, and I’m happy to report that Mentor Embedded Linux has been recognized in the community as being one of the few options for a commercially supported embedded Linux customization platform.