diff options
Diffstat (limited to 'documentation/kernel-dev')
| -rw-r--r-- | documentation/kernel-dev/kernel-dev-concepts-appx.xml | 113 |
1 files changed, 72 insertions, 41 deletions
diff --git a/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 3606301cc7..ee40938b5d 100644 --- a/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/documentation/kernel-dev/kernel-dev-concepts-appx.xml | |||
| @@ -175,74 +175,105 @@ | |||
| 175 | 175 | ||
| 176 | <section id='kernel-architecture'> | 176 | <section id='kernel-architecture'> |
| 177 | <title>Kernel Architecture</title> | 177 | <title>Kernel Architecture</title> |
| 178 | |||
| 178 | <para> | 179 | <para> |
| 179 | This section describes the architecture of the kernels available through the | 180 | This section describes the architecture of the Yocto Linux kernels |
| 180 | Yocto Project and provides information | 181 | available through the Yocto Project and provides information |
| 181 | on the mechanisms used to achieve that architecture. | 182 | on the mechanisms used to achieve that architecture. |
| 182 | </para> | 183 | </para> |
| 183 | 184 | ||
| 184 | <section id='architecture-overview'> | 185 | <section id='architecture-overview'> |
| 185 | <title>Overview</title> | 186 | <title>Overview</title> |
| 187 | |||
| 186 | <para> | 188 | <para> |
| 187 | As mentioned earlier, a key goal of the Yocto Project is to present the | 189 | As mentioned earlier, a key goal of the Yocto Project is |
| 188 | developer with | 190 | to present the developer with a kernel that has a clear and |
| 189 | a kernel that has a clear and continuous history that is visible to the user. | 191 | continuous history that is visible to the user. |
| 190 | The architecture and mechanisms used achieve that goal in a manner similar to the | 192 | The architecture and mechanisms used achieve that goal in a |
| 191 | upstream <filename>kernel.org</filename>. | 193 | manner similar to upstream Linux kernel development in |
| 194 | <filename>kernel.org</filename>. | ||
| 192 | </para> | 195 | </para> |
| 196 | |||
| 193 | <para> | 197 | <para> |
| 194 | You can think of a Yocto Project kernel as consisting of a baseline Linux kernel with | 198 | You can think of a Yocto Linux kernel as consisting of a |
| 195 | added features logically structured on top of the baseline. | 199 | baseline Linux kernel with added features logically structured |
| 196 | The features are tagged and organized by way of a branching strategy implemented by the | 200 | on top of the baseline. |
| 201 | The features are tagged and organized by way of a branching | ||
| 202 | strategy implemented by the Yocto Project team using the | ||
| 197 | source code manager (SCM) Git. | 203 | source code manager (SCM) Git. |
| 198 | For information on Git as applied to the Yocto Project, see the | 204 | For information on Git as applied to the Yocto Project, see the |
| 199 | "<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>" section in the | 205 | "<ulink url='&YOCTO_DOCS_REF_URL;#git'>Git</ulink>" section |
| 200 | Yocto Project Development Manual. | 206 | in the Yocto Project Development Manual. |
| 201 | </para> | ||
| 202 | <para> | ||
| 203 | The result is that the user has the ability to see the added features and | ||
| 204 | the commits that make up those features. | ||
| 205 | In addition to being able to see added features, the user can also view the history of what | ||
| 206 | made up the baseline kernel. | ||
| 207 | </para> | 207 | </para> |
| 208 | |||
| 208 | <para> | 209 | <para> |
| 209 | The following illustration shows the conceptual Yocto Project kernel. | 210 | The result is that the user has the ability to see the added |
| 211 | features and the commits that make up those features. | ||
| 212 | In addition to being able to see added features, the user | ||
| 213 | can also view the history of what made up the baseline | ||
| 214 | Linux kernel. | ||
| 210 | </para> | 215 | </para> |
| 216 | |||
| 211 | <para> | 217 | <para> |
| 218 | The following illustration shows the conceptual Yocto | ||
| 219 | Linux kernel. | ||
| 212 | <imagedata fileref="figures/kernel-architecture-overview.png" width="6in" depth="7in" align="center" scale="100" /> | 220 | <imagedata fileref="figures/kernel-architecture-overview.png" width="6in" depth="7in" align="center" scale="100" /> |
| 213 | </para> | 221 | </para> |
| 222 | |||
| 214 | <para> | 223 | <para> |
| 215 | In the illustration, the "Kernel.org Branch Point" | 224 | In the illustration, the "Kernel.org Branch Point" marks the |
| 216 | marks the specific spot (or release) from | 225 | specific spot (or Linux kernel release) from which the |
| 217 | which the Yocto Project kernel is created. | 226 | Yocto Linux kernel is created. |
| 218 | From this point "up" in the tree, features and differences are organized and tagged. | 227 | From this point forward in the tree, features and differences |
| 228 | are organized and tagged. | ||
| 219 | </para> | 229 | </para> |
| 230 | |||
| 220 | <para> | 231 | <para> |
| 221 | The "Yocto Project Baseline Kernel" contains functionality that is common to every kernel | 232 | The "Yocto Project Baseline Kernel" contains functionality that |
| 222 | type and BSP that is organized further up the tree. | 233 | is common to every kernel type and BSP that is organized |
| 223 | Placing these common features in the | 234 | further along in the tree. |
| 224 | tree this way means features do not have to be duplicated along individual branches of the | 235 | Placing these common features in the tree this way means |
| 225 | structure. | 236 | features do not have to be duplicated along individual |
| 237 | branches of the tree structure. | ||
| 226 | </para> | 238 | </para> |
| 239 | |||
| 227 | <para> | 240 | <para> |
| 228 | From the Yocto Project Baseline Kernel, branch points represent specific functionality | 241 | From the Yocto Project Baseline Kernel, branch points represent |
| 229 | for individual BSPs as well as real-time kernels. | 242 | specific functionality for individual Board Support Packages |
| 230 | The illustration represents this through three BSP-specific branches and a real-time | 243 | (BSPs) as well as real-time kernels. |
| 231 | kernel branch. | 244 | The illustration represents this through three BSP-specific |
| 232 | Each branch represents some unique functionality for the BSP or a real-time kernel. | 245 | branches and a real-time kernel branch. |
| 246 | Each branch represents some unique functionality for the BSP | ||
| 247 | or for a real-time Yocto Linux kernel. | ||
| 233 | </para> | 248 | </para> |
| 249 | |||
| 234 | <para> | 250 | <para> |
| 235 | In this example structure, the real-time kernel branch has common features for all | 251 | In this example structure, the real-time kernel branch has |
| 236 | real-time kernels and contains | 252 | common features for all real-time Yocto Linux kernels and |
| 237 | more branches for individual BSP-specific real-time kernels. | 253 | contains more branches for individual BSP-specific real-time |
| 254 | kernels. | ||
| 238 | The illustration shows three branches as an example. | 255 | The illustration shows three branches as an example. |
| 239 | Each branch points the way to specific, unique features for a respective real-time | 256 | Each branch points the way to specific, unique features for a |
| 240 | kernel as they apply to a given BSP. | 257 | respective real-time kernel as they apply to a given BSP. |
| 241 | </para> | 258 | </para> |
| 259 | |||
| 242 | <para> | 260 | <para> |
| 243 | The resulting tree structure presents a clear path of markers (or branches) to the | 261 | The resulting tree structure presents a clear path of markers |
| 244 | developer that, for all practical purposes, is the kernel needed for any given set | 262 | (or branches) to the developer that, for all practical |
| 245 | of requirements. | 263 | purposes, is the Yocto Linux kernel needed for any given set of |
| 264 | requirements. | ||
| 265 | <note> | ||
| 266 | Keep in mind the figure does not take into account all the | ||
| 267 | supported Yocto Linux kernels, but rather shows a single | ||
| 268 | generic kernel just for conceptual purposes. | ||
| 269 | Also keep in mind that this structure represents the Yocto | ||
| 270 | Project | ||
| 271 | <ulink url='&YOCTO_DOCS_REF_URL;#source-repositories'>Source Repositories</ulink> | ||
| 272 | that are either pulled from during the build or established | ||
| 273 | on the host development system prior to the build by either | ||
| 274 | cloning a particular kernel's Git repository or by | ||
| 275 | downloading and unpacking a tarball. | ||
| 276 | </note> | ||
| 246 | </para> | 277 | </para> |
| 247 | </section> | 278 | </section> |
| 248 | 279 | ||
