diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2018-02-20 15:52:56 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-03-03 08:35:24 +0000 |
commit | 3461d890d312744d15e680ba8e923505610277bf (patch) | |
tree | e0d84c78ffca761fddb039792c133df0d52be976 /documentation/getting-started | |
parent | 6f488928cb25960e42794c20ce77f2b2978e4fa2 (diff) | |
download | poky-3461d890d312744d15e680ba8e923505610277bf.tar.gz |
getting-started: Created "Some Basic Terms" section.
This section contains some fundamental terms people decided were
important enough to have in this getting-started manual.
(From yocto-docs rev: 42bfa0d8fc0a61c26f6b2f4b9e285c06255e8b8d)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/getting-started')
-rw-r--r-- | documentation/getting-started/getting-started-yp-intro.xml | 178 |
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 | <!-- |
1154 | vim: expandtab tw=80 ts=4 | 1330 | vim: expandtab tw=80 ts=4 |