anat0lius
anat0lius

Reputation: 2275

Difference between Yocto Project and OpenEmbedded?

On Yocto Project FAQ:

The Yocto Project and OpenEmbedded share a core collection of metadata called openembedded-core. However, the two organizations remain separate, each with its own focus. OpenEmbedded provides a comprehensive set of metadata for a wide variety of architectures, features, and applications. The Yocto Project focuses on providing powerful, easy-to-use, interoperable, well-tested tools, metadata, and board support packages (BSPs) for a core set of architectures and specific boards.

I still not getting nothing clear. The two frameworks are meant to build Linux distributions. But I would like to know on what they are distinct specifically. Not only techically but also objectivly, so I can argue why to choose one or another.

Moreover, why Yocto has so much prominence? altough OE being the first build framework.

ps: I have worked with Yocto Project, but not with OE.

Upvotes: 14

Views: 10190

Answers (2)

Ibraheem Elshahed
Ibraheem Elshahed

Reputation: 1

Here is what i concluded after researching:

What I think of it as an Analogy:

cmake and make both are two options to build a software project, but what their actually difference is:

make is the real building tool that builds your project through reading the makefile and generates the binary files. CMake is a generator that generates the building configurations including the makefile that then should be built through "make" to build your project and generate the binaries. So cmake makes it alot easier for you to build a complex project without needing to write the makefile yourself, it generates it for you instead.

So the same here:

bitbake -> make

OE-Core -> makefile

OpenEmbedded -> make build-system (make + makefile)

poky -> cmake

yocto-project -> the whole build ecosystem (cmake + make + additional tools)

Here is a definition for each component as of what i understood:

OpenEmbedded:

  • is the framework used for building linux distributions through using bitbake(the building tool) and it was made before yocto-project.

  • It contains the OpenEmbedded-Core (OE-CORE) which are the base set of recipes and configurations used for building embedded linux.

Yocto-project:

  • It uses OpenEmbedded to build the linux distributions but provide a more structured, standardized and easier way for buiding linux distributions for embedded systems.

poky:

  • It is the Yocto-project reference for linux distribution.

  • It provides a ready-to-use environment that includes all the essential components (OE-Core, Bitbake, yocto-specific metadata, yocto-specific BSP) needed to build a Linux distribution.

  • So it does the work for you, where you build a linux distribution with just two commands rather than configuring OE and assemble everything manually.

Hope this was helpful!

Upvotes: 0

Ross Burton
Ross Burton

Reputation: 4063

The key point is that the Yocto Project is a community/organisation, and not something you can buy/download/install.

Some of the things that the Yocto Project works on includes bitbake (the build tool), OpenEmbedded Core (the essential recipes to build systems, such as glibc/gcc/systemd), some BSPs, and tooling/services (error reporting service, autobuilder, etc).

The OpenEmbedded community predates Yocto and at the time had a different focus, but now we both contribute to the same projects so there's no real difference.

Upvotes: 18

Related Questions