Understanding the BitBake tool
The BitBake task scheduler started as a fork from Portage, which is the package management system used in the Gentoo distribution. However, the two projects have diverged a lot due to different usage focuses. The Yocto Project and the OpenEmbedded Project are the most well-known and intensive users of BitBake, which remains a separate and independent project with its own development cycle and mailing list (bitbake-devel@lists.openembedded.org).
As presented in Chapter 1, Meeting the Yocto Project, BitBake is a task scheduler that parses Python and the shell script mixed code. Based on the metadata, BitBake generates a large number of tasks that may have a complex dependency chain, so BitBake is responsible for ensuring those dependencies are met by maximizing the use of computational resources and running as many tasks as possible in parallel. BitBake can be understood as a tool similar to GNU Make in some respects.
In this chapter, we will cover the main aspects of BitBake. However, for more in-depth details about the tool, please refer to https://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html.