"BitBake" is easy -- that's the command you run to rebuild "BitBake recipes" (a recipe is something like a Makefile, except that it's more "meta" -- it defines what to run in order to build software packages, i.e. how to find and build a source directory that may have Makefiles/CMakeLists/whathaveyou in it -- so I think it's a bit like e.g. an RPM spec file). So you run stuff like 'bitbake -c clean packagename' or 'bitbake -C compile packagename'. (BTW, I often want to do things in a single command -- is that possible? Reloading the whole cache every time gets old after a while.)
Fine okay, "Yocto" is presumably the name of the entire project. But what's Poky?
> Poky is a reference distribution of the Yocto Project®. It contains the OpenEmbedded Build System (BitBake and OpenEmbedded Core) as well as a set of metadata to get you started building your own distro.
Hrm, what's OpenEmbedded Core?
> OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with DISTRO = "nodistro") and contains only emulated machine support.
Hrm, okay. (BTW, for the people who don't know -- "metadata" most likely refers to a collection of "BitBake" recipes (i.e. a directory containing loosely related BitBake recipes), so the "core metadata" would likely be the recipe for at least the Linux kernel.) (BTW2, in BitBake, you customize recipes using "layers". The first layer contains recipes that build things in a generic way, and then you add other "layers" that contain "bbapend" files that override variables or commands in the lower-layer recipes to build something the way you need it.)
Okay, so is the "OpenEmbedded Build System" still part of the Yocto project? From Wikipedia: "BitBake is co-maintained by the Yocto Project and the OpenEmbedded project." Okay, that explains that a bit. But why are they separate in the first place?
Why does "Poky" have such a weird name, and what kind of recipes does it bring to the table? Looking at the repository (http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta), that's quite a lot of useful packages.
One other question that just popped up in my mind: are there any Desktop Linux distros that use this as their build system?
When you "use yocto", you're likely just using parts of the OpenEmbedded project. Yocto takes all the flexibility of the OpenEmbedded project and packages together a functional setup (called Poky) that can be more easily customized to build custom images. (There are non-poky, non-openembedded components of yocto, but I'm not familiar with them).
The default packages shipped with Poky are I suspect just the minimal set required to get a network connected device with a GUI interface up. Remember that it's default setup is effectively suppose to be a "hello world" project.
I don't think so and I think that is not the goal of the project. It is more like a build system to meet the requirements of "I need to build a set of packages for architecture X and additionally a host SDK and a deployable system image", so it lets you whip up a recipe with your requirements and off you go.
The pronunciation is even more weird: "Pock-ee"
"Poky" in English means "small". The idea being that the distro is engineered to build small OS images for small embedded devices.
> It's located in a pokey little village in the middle of damn near nowhere.
Sure, but that doesn't mean "slow slow". The poke part of that that means something similar to "yoke".
A slowpoke is something that's slow and dragging you down with it.
Pocky is a brand of chocolate coated bisquit sticks. (Not very international, I have not seen them.) But using a trademarked (I assume) name might end up in trouble, so they changed the spelling but kept the pronunciation.