summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'documentation')
-rw-r--r--documentation/getting-started/getting-started-yp-intro.xml178
1 files changed, 177 insertions, 1 deletions
diff --git a/documentation/getting-started/getting-started-yp-intro.xml b/documentation/getting-started/getting-started-yp-intro.xml
index caabb13c10..f39cd70c74 100644
--- a/documentation/getting-started/getting-started-yp-intro.xml
+++ b/documentation/getting-started/getting-started-yp-intro.xml
@@ -1147,8 +1147,184 @@
1147 <section id='some-basic-terms'> 1147 <section id='some-basic-terms'>
1148 <title>Some Basic Terms</title> 1148 <title>Some Basic Terms</title>
1149 1149
1150 <para>
1151 It helps to understand some basic fundamental terms when
1152 learning the Yocto Project.
1153 Although a list of terms exists in the
1154 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-terms'>Yocto Project Terms</ulink>"
1155 section of the Yocto Project Reference Manual, this section
1156 provides the definitions of some terms helpful for getting started:
1157 <itemizedlist>
1158 <listitem><para>
1159 <emphasis>Configuration Files:</emphasis>
1160 Files that hold global definitions of variables,
1161 user-defined variables, and hardware configuration
1162 information.
1163 These files tell the OpenEmbedded build system what to
1164 build and what to put into the image to support a
1165 particular platform.
1166 </para></listitem>
1167 <listitem><para>
1168 <emphasis>Extensible Software Development Kit (eSDK):</emphasis>
1169 A custom SDK for application developers.
1170 This eSDK allows developers to incorporate their library
1171 and programming changes back into the image to make
1172 their code available to other application developers.
1173 For information on the eSDK, see the
1174 <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and Extensible Software Development Kit (eSDK)</ulink>
1175 manual.
1176 </para></listitem>
1177 <listitem><para>
1178 <emphasis>Layer:</emphasis>
1179 A collection of related recipes.
1180 Layers allow you to consolidate related metadata to
1181 customize your build.
1182 Layers also isolate information used when building
1183 for multiple architectures.
1184 Layers are hierarchical in their ability to override
1185 previous specifications.
1186 You can include any number of available layers from the
1187 Yocto Project and customize the build by adding your
1188 layers after them.
1189 You can search the Layer Index for layers used within
1190 Yocto Project.</para>
1191
1192 <para>For more detailed information on layers, see the
1193 "<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
1194 section in the Yocto Project Development Tasks Manual.
1195 For a discussion specifically on BSP Layers, see the
1196 "<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
1197 section in the Yocto Project Board Support Packages (BSP)
1198 Developer's Guide.
1199 </para></listitem>
1200 <listitem><para>
1201 <emphasis>Metadata:</emphasis>
1202 A key element of the Yocto Project is the Metadata that
1203 is used to construct a Linux distribution and is contained
1204 in the files that the
1205 <link linkend='gs-term-openembedded-build-system'>OpenEmbedded build system</link> parses
1206 when building an image.
1207 In general, Metadata includes recipes, configuration
1208 files, and other information that refers to the build
1209 instructions themselves, as well as the data used to
1210 control what things get built and the effects of the
1211 build.
1212 Metadata also includes commands and data used to
1213 indicate what versions of software are used, from
1214 where they are obtained, and changes or additions to the
1215 software itself (patches or auxiliary files) that
1216 are used to fix bugs or customize the software for use
1217 in a particular situation.
1218 OpenEmbedded Core is an important set of validated
1219 metadata.
1220 </para></listitem>
1221 <listitem><para id='gs-term-openembedded-build-system'>
1222 <emphasis>OpenEmbedded Build System:</emphasis>
1223 The terms "BitBake" and "build system" are sometimes
1224 used for the OpenEmbedded Build System.</para>
1225
1226 <para>BitBake is a task scheduler and execution engine
1227 that parses instructions (i.e. recipes) and configuration
1228 data.
1229 After a parsing phase, BitBake creates a dependency tree
1230 to order the compilation, schedules the compilation of
1231 the included code, and finally executes the building
1232 of the specified custom Linux image (distribution).
1233 BitBake is similar to the <filename>make</filename>
1234 tool.</para>
1235
1236 <para>During a build process, the build system tracks
1237 dependencies and performs a native or cross-compilation
1238 of the package.
1239 As a first step in a cross-build setup, the framework
1240 attempts to create a cross-compiler toolchain
1241 (i.e. Extensible SDK) suited for the target platform.
1242 </para></listitem>
1243 <listitem><para>
1244 <emphasis>OpenEmbedded-Core (OE-Core):</emphasis>
1245 OE-Core is metadata comprised of foundation recipes,
1246 classes, and associated files that are meant to be
1247 common among many different OpenEmbedded-derived systems,
1248 including the Yocto Project.
1249 OE-Core is a curated subset of an original repository
1250 developed by the OpenEmbedded community that has been
1251 pared down into a smaller, core set of continuously
1252 validated recipes.
1253 The result is a tightly controlled and an quality-assured
1254 core set of recipes.</para>
1255
1256 <para>You can see the Metadata in the
1257 <filename>meta</filename> directory of the Yocto Project
1258 <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi'>Source Repositories</ulink>.
1259 </para></listitem>
1260 <listitem><para>
1261 <emphasis>Packages:</emphasis>
1262 In the context of the Yocto Project, this term refers to a
1263 recipe's packaged output produced by BitBake (i.e. a
1264 "baked recipe").
1265 A package is generally the compiled binaries produced from the
1266 recipe's sources.
1267 You "bake" something by running it through BitBake.</para>
1268
1269 <para>It is worth noting that the term "package" can,
1270 in general, have subtle meanings.
1271 For example, the packages referred to in the
1272 "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Build Host Packages</ulink>"
1273 section in the Yocto Project Quick Start are compiled binaries
1274 that, when installed, add functionality to your Linux
1275 distribution.</para>
1276
1277 <para>Another point worth noting is that historically within
1278 the Yocto Project, recipes were referred to as packages - thus,
1279 the existence of several BitBake variables that are seemingly
1280 mis-named,
1281 (e.g. <ulink url='&YOCTO_DOCS_REF_URL;#var-PR'><filename>PR</filename></ulink>,
1282 <ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink>,
1283 and
1284 <ulink url='&YOCTO_DOCS_REF_URL;#var-PE'><filename>PE</filename></ulink>).
1285 </para></listitem>
1286 <listitem><para>
1287 <emphasis>Poky:</emphasis>
1288 Poky, which is pronounced <emphasis>Pock</emphasis>-ee,
1289 is a reference embedded distribution and a reference
1290 test configuration.
1291 Poky provides the following:
1292 <itemizedlist>
1293 <listitem><para>
1294 A base-level functional distro used to illustrate
1295 how to customize a distribution.
1296 </para></listitem>
1297 <listitem><para>
1298 A means by which to test the Yocto Project
1299 components (i.e. Poky is used to validate
1300 the Yocto Project).
1301 </para></listitem>
1302 <listitem><para>
1303 A vehicle through which you can download
1304 the Yocto Project.
1305 </para></listitem>
1306 </itemizedlist>
1307 Poky is not a product level distro.
1308 Rather, it is a good starting point for customization.
1309 <note>
1310 Poky is an integration layer on top of OE-Core.
1311 </note>
1312 </para></listitem>
1313 <listitem><para>
1314 <emphasis>Recipe:</emphasis>
1315 The most common form of metadata.
1316 A recipe contains a list of settings and tasks
1317 (i.e. instructions) for building packages that are then
1318 used to build the binary image.
1319 A recipe describes where you get source code and which
1320 patches to apply.
1321 Recipes describe dependencies for libraries or for other
1322 recipes as well as configuration and compilation options.
1323 Related recipes are consolidated into a layer.
1324 </para></listitem>
1325 </itemizedlist>
1326 </para>
1150 </section> 1327 </section>
1151
1152</chapter> 1328</chapter>
1153<!-- 1329<!--
1154vim: expandtab tw=80 ts=4 1330vim: expandtab tw=80 ts=4