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 | |
| 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')
| -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 |
