.. SPDX-License-Identifier: CC-BY-SA-2.0-UK

**********************************************
The Yocto Project Overview and Concepts Manual
**********************************************

Welcome
=======

Welcome to the Yocto Project Overview and Concepts Manual! This manual
introduces the Yocto Project by providing concepts, software overviews,
best-known-methods (BKMs), and any other high-level introductory
information suitable for a new Yocto Project user.

The following list describes what you can get from this manual:

-  `Introducing the Yocto Project <#overview-yp>`__\ *:* This chapter
   provides an introduction to the Yocto Project. You will learn about
   features and challenges of the Yocto Project, the layer model,
   components and tools, development methods, the
   :term:`Poky` reference distribution, the
   OpenEmbedded build system workflow, and some basic Yocto terms.

-  `The Yocto Project Development
   Environment <#overview-development-environment>`__\ *:* This chapter
   helps you get started understanding the Yocto Project development
   environment. You will learn about open source, development hosts,
   Yocto Project source repositories, workflows using Git and the Yocto
   Project, a Git primer, and information about licensing.

-  :doc:`/overview-manual/concepts` *:* This
   chapter presents various concepts regarding the Yocto Project. You
   can find conceptual information about components, development,
   cross-toolchains, and so forth.

This manual does not give you the following:

-  *Step-by-step Instructions for Development Tasks:* Instructional
   procedures reside in other manuals within the Yocto Project
   documentation set. For example, the :doc:`/dev-manual/index`
   provides examples on how to perform
   various development tasks. As another example, the 
   :doc:`/sdk-manual/index` manual contains detailed
   instructions on how to install an SDK, which is used to develop
   applications for target hardware.

-  *Reference Material:* This type of material resides in an appropriate
   reference manual. For example, system variables are documented in the
   :doc:`/ref-manual/index`. As another
   example, the :doc:`/bsp-guide/index` contains reference information on
   BSPs.

-  *Detailed Public Information Not Specific to the Yocto Project:* For
   example, exhaustive information on how to use the Source Control
   Manager Git is better covered with Internet searches and official Git
   Documentation than through the Yocto Project documentation.

Other Information
=================

Because this manual presents information for many different topics,
supplemental information is recommended for full comprehension. For
additional introductory information on the Yocto Project, see the
:yocto_home:`Yocto Project Website <>`. If you want to build an image
with no knowledge of Yocto Project as a way of quickly testing it out,
see the :doc:`/brief-yoctoprojectqs/index` document.
For a comprehensive list of links and other documentation, see the
":ref:`Links and Related
Documentation <resources-links-and-related-documentation>`"
section in the Yocto Project Reference Manual.
