From 4b3ebf00dc8eac6061ff077cff488f70c641d16e Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Fri, 9 Feb 2018 12:43:21 -0800 Subject: getting-started, mega-manual: New content for intro chapter Created content for "What is the Yocto Project" section. Involved a new figure that had to be shared in the mega-manual figures folder. (From yocto-docs rev: 72c18abd11587f4d78848afb8a71ff7f4a0e76d0) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../getting-started/figures/key-dev-elements.png | Bin 0 -> 17052 bytes .../getting-started/getting-started-yp-intro.xml | 255 +++++++++++++++++++++ 2 files changed, 255 insertions(+) create mode 100644 documentation/getting-started/figures/key-dev-elements.png (limited to 'documentation/getting-started') 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. + + + +
-- cgit v1.2.3-54-g00ecf