Windows® family of operating systems developed by Microsoft® Corporation.
Wikipedia has a good historical description of the Open Source Philosophy here. You can also find helpful information on
how to participate in the Linux Community here.
3.2. The Development Host¶
A development host or build host is key to using the Yocto Project. Because the goal of the Yocto Project is to develop
images or applications that run on embedded hardware, development of those images and applications generally takes
place on a system not intended to run the software - the development host.
You need to set up a development host in order to use it with the Yocto Project. Most find that it is best to have a native
Linux machine function as the development host. However, it is possible to use a system that does not run Linux as its
operating system as your development host. When you have a Mac or Windows-based system, you can set it up as the
development host by using CROPS, which leverages Docker Containers. Once you take the steps to set up a CROPS
machine, you effectively have access to a shell environment that is similar to what you see when using a Linux-based
development host. For the steps needed to set up a system using CROPS, see the "Setting Up to Use CROss PlatformS
(CROPS)" section in the Yocto Project Development Tasks Manual.
If your development host is going to be a system that runs a Linux distribution, steps still exist that you must take to
prepare the system for use with the Yocto Project. You need to be sure that the Linux distribution on the system is one
that supports the Yocto Project. You also need to be sure that the correct set of host packages are installed that allow
development using the Yocto Project. For the steps needed to set up a development host that runs Linux, see the
"Setting Up a Native Linux Host" section in the Yocto Project Development Tasks Manual.
Once your development host is set up to use the Yocto Project, several methods exist for you to do work in the Yocto
Project environment:
Command Lines, BitBake, and Shells: Traditional development in the Yocto Project involves using the
OpenEmbedded build system, which uses BitBake, in a command-line environment from a shell on your development
host. You can accomplish this from a host that is a native Linux machine or from a host that has been set up with
CROPS. Either way, you create, modify, and build images and applications all within a shell-based environment using
components and tools available through your Linux distribution and the Yocto Project.
For a general flow of the build procedures, see the "Building a Simple Image" section in the Yocto Project Development
Tasks Manual.
Board Support Package (BSP) Development: Development of BSPs involves using the Yocto Project to create and
test layers that allow easy development of images and applications targeted for specific hardware. To development
BSPs, you need to take some additional steps beyond what was described in setting up a development host.
The Yocto Project Board Support Package (BSP) Developer's Guide provides BSP-related development information. For
specifics on development host preparation, see the "Preparing Your Build Host to Work With BSP Layers" section in the
Yocto Project Board Support Package (BSP) Developer's Guide.
Kernel Development: If you are going to be developing kernels using the Yocto Project you likely will be using
devtool. A workflow using devtool makes kernel development quicker by reducing iteration cycle times.
The Yocto Project Linux Kernel Development Manual provides kernel-related development information. For specifics on
development host preparation, see the "Preparing the Build Host to Work on the Kernel" section in the Yocto Project
Linux Kernel Development Manual.
Using Toaster: The other Yocto Project development method that involves an interface that effectively puts the Yocto
Project into the background is Toaster. Toaster provides an interface to the OpenEmbedded build system. The interface
enables you to configure and run your builds. Information about builds is collected and stored in a database. You can
use Toaster to configure and start builds on multiple remote build servers.
For steps that show you how to set up your development host to use Toaster and on how to use Toaster in general,
see the Toaster User Manual.