diff --git a/documentation/Makefile b/documentation/Makefile
index 9e0ba56df3..f2afc23628 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -89,7 +89,7 @@ XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = getting-started-style.css getting-started.html figures/getting-started-title.png \
figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \
- figures/yp-download.png figures/YP-flow-diagram.png \
+ figures/yp-download.png figures/YP-flow-diagram.png figures/key-dev-elements.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
@@ -270,7 +270,7 @@ TARFILES = mega-manual.html mega-style.css \
figures/source-fetching.png figures/patching.png \
figures/configuration-compile-autoreconf.png \
figures/analysis-for-package-splitting.png \
- figures/image-generation.png \
+ figures/image-generation.png figures/key-dev-elements.png\
figures/sdk-generation.png figures/recipe-workflow.png \
figures/build-workspace-directory.png figures/mega-title.png \
figures/toaster-title.png figures/hosted-service.png \
diff --git a/documentation/getting-started/figures/key-dev-elements.png b/documentation/getting-started/figures/key-dev-elements.png
new file mode 100644
index 0000000000..ce22b98ed0
Binary files /dev/null and b/documentation/getting-started/figures/key-dev-elements.png differ
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml
index a3ef4fcfec..8ea11baa75 100644
--- a/documentation/getting-started/getting-started-yp-intro.xml
+++ b/documentation/getting-started/getting-started-yp-intro.xml
@@ -8,6 +8,261 @@
What is the Yocto Project?
+
+ The Yocto Project is an open source collaboration project
+ that helps developers create custom Linux-based systems that are
+ designed for embedded products regardless of the product's hardware
+ architecture.
+ Yocto Project provides a flexible toolset and a development
+ environment that allows embedded device developers across the
+ world to collaborate through shared technologies, software stacks,
+ configurations, and best practices used to create these tailored
+ Linux images.
+
+
+
+ Thousands of developers worldwide have discovered that Yocto
+ Project provides advantages in both systems and applications
+ development, archival and management benefits, and customizations
+ used for speed, footprint, and memory utilization.
+ The project is a standard when it comes to delivering hardware
+ support and software stacks, allowing software configuration
+ and build interchange, and build and support customizations for
+ multiple hardware platforms and software stacks that can be
+ maintained and scaled.
+
+
+
+
+
+
+
+
+
+ For further introductory information on the Yocto Project, you
+ might be interested in this
+ article
+ by Drew Moseley and in this short introductory
+ video.
+
+
+
+ The remainder of this section overviews advantages and challenges
+ tied to the Yocto Project.
+
+
+
+ Features
+
+
+ The following list describes features and advantages of the
+ Yocto Project:
+
+
+ Widely Adopted Across the Industry:
+ Semiconductor, operating system, software, and
+ service vendors exist whose products and services
+ adopt and support the Yocto Project.
+ For a look at the companies involved with the Yocto
+ Project, see the membership, associate, and
+ participant pages on the Yocto Project home page.
+
+
+ Architecture Agnostic:
+ Yocto Project supports Intel, ARM, MIPS, AMD, PPC
+ and other architectures.
+ Most ODMs, OSVs, and chip vendors create and supply
+ BSPs that support their hardware.
+ If you have custom silicon, you can create a BSP
+ that supports that architecture.
+
+
+ Images and Code Transfer Easily:
+ Yocto Project output can easily move between
+ architectures without moving to new development
+ environments.
+ Additionally, if you have used the Yocto Project to
+ create an image or application and you find yourself
+ not able to support it, commercial Linux vendors such
+ as Wind River, Mentor Graphics, Timesys, and ENEA could
+ take it and provide ongoing support.
+ These vendors have offerings that are built using
+ the Yocto Project.
+
+
+ Flexibility:
+ Corporations use the Yocto Project many different ways.
+ One example is to create an internal Linux distribution
+ as a code base the corporation can use across multiple
+ product groups.
+ Through customization and layering, a project group
+ can leverage the base Linux distribution to create
+ a distribution that works for their product needs.
+
+
+ Ideal for Constrained Embedded and IoT devices:
+ Unlike a full Linux distribution, you can use the
+ Yocto Project to create exactly what you need for
+ embedded devices.
+ You only add the feature support or packages that you
+ absolutely need for the device.
+
+
+ Comprehensive Toolchain Capabilities:
+ Toolchains for supported architectures satisfy most
+ use cases.
+ However, if your hardware supports features that are
+ not part of a standard toolchain, you can easily
+ customize that toolchain through specification of
+ platform-specific tuning parameters.
+ And, should you need to use a third-party toolchain,
+ mechanisms built into the Yocto Project allow for that.
+
+
+ Mechanism Rules Over Policy:
+ Focusing on mechanism rather than policy ensures that
+ you are free to set policies based on the needs of your
+ design instead of adopting decisions enforced by some
+ system software provider.
+
+
+ Uses a Layer Model:
+ The Yocto Project layer infrastructure groups related
+ functionality into separate bundles.
+ You can incrementally add these grouped functionalities
+ to your project as needed.
+ Using layers to isolate and group functionality
+ reduces project complexity and redundancy.
+
+
+ Supports Partial Builds:
+ You can build and rebuild individual packages as
+ needed.
+ Yocto Project accomplishes this through its
+ shared-state cache (sstate) scheme.
+ Being able to build and debug components individually
+ eases project development.
+
+
+ Releases According to a Strict Schedule:
+ Major releases occur on a six-month cycle predictably
+ in October and April.
+ The most recent two releases support point releases
+ to address common vulnerabilities and exposures.
+ This predictability is crucial for projects based on
+ the Yocto Project and allows development teams to
+ plan activities.
+
+
+ Rich Ecosystem of Individuals and Organizations:
+ For open source projects, the value of community is
+ very important.
+ Support forums, expertise, and active developers who
+ continue to push the Yocto Project forward are readily
+ available.
+
+
+ Binary Reproducibility:
+ The Yocto Project you to be very specific about
+ dependencies and achieves very high percentages of
+ binary reproducibility (e.g. 99.8% for
+ core-image-minimal).
+ When distributions are not specific about which
+ packages are pulled in and in what order to support
+ dependencies, other build systems can arbitrarily
+ include packages.
+
+
+ License Manifest:
+ The Yocto Project provides a license manifest for
+ review by people that need to track the use of open
+ source licenses (e.g.legal teams).
+
+
+
+
+
+
+ Challenges
+
+
+ The following list presents challenges you might encounter
+ when developing using the Yocto Project:
+
+
+ Steep Learning Curve:
+ The Yocto Project has a steep learning curve and has
+ many different ways to accomplish similar tasks.
+ It can be difficult to choose how to proceed when
+ varying methods exist by which to accomplish a given
+ task.
+
+
+ Understanding What Changes You Need to Make
+ For Your Design Requires Some Research:
+ Beyond the simple tutorial stage, understanding what
+ changes need to be made for your particular design
+ can require a significant amount of research and
+ investigation.
+ For information that helps you transition from
+ trying out the Yocto Project to using it for your
+ project, see the "What I wish I'd Known" and
+ "Transitioning to a Custom Environment for Systems
+ Development" documents on the Yocto Project website.
+
+
+ Project Workflow Could Be Confusing:
+ The Yocto Project workflow could be confusing if you
+ used to traditional desktop and server software
+ development.
+ In a desktop development environment, mechanisms exist
+ to easily pull and install new packages, which are
+ typically pre-compiled binaries from servers accessible
+ over the Internet.
+ Using the Yocto Project, you must modify your
+ configuration and rebuild to add additional packages.
+
+
+ Working in a Cross-Build Environment Can
+ Feel Unfamiliar:
+ When developing code to run on a target, compilation,
+ execution, and testing done on the actual target
+ can be faster than running a BitBake build on a
+ development host and then deploying binaries to the
+ target for test.
+ While the Yocto Project does support development tools
+ on the target, the additional step of integrating your
+ changes back into the Yocto Project build environment
+ would be required.
+ Yocto Project supports an intermediate approach that
+ involves making changes on the development system
+ within the BitBake environment and then deploying only
+ the updated packages to the target.
+
+ The Yocto Project OpenEmbedded build system
+ produces packages in standard formats (i.e. RPM,
+ DEB, IPK, and TAR).
+ You can deploy these packages into the running system
+ on the target by using utilities on the target such
+ as rpm or
+ ipk.
+
+
+ Initial Build Times Can be Significant:
+ Long initial build times are unfortunately unavoidable
+ due to the large number of packages initially built
+ from scratch for a fully functioning Linux system.
+ Once that initial build is completed, however, the
+ shared-state (sstate) cache mechanism Yocto Project
+ uses keeps the system from rebuilding packages that
+ have not been "touched" since the last build.
+ The sstate mechanism significantly reduces times
+ for successive builds.
+
+
+
+
diff --git a/documentation/mega-manual/figures/key-dev-elements.png b/documentation/mega-manual/figures/key-dev-elements.png
new file mode 100644
index 0000000000..ce22b98ed0
Binary files /dev/null and b/documentation/mega-manual/figures/key-dev-elements.png differ