========================= SO2 Lab 01 - Introduction ========================= Lab objectives ============== * presenting the rules and objectives of the Operating Systems 2 lab * introducing the lab documentation * introducing the Linux kernel and related resources * creating simple modules * describing the process of kernel module compilation * presenting how a module can be used with a kernel * simple kernel debugging methods .. include:: ../labs/introduction.rst :start-after: [SECTION-ABOUT-BEGIN] :end-before: [SECTION-ABOUT-END] .. include:: ../labs/introduction.rst :start-after: [SECTION-REFERENCES-BEGIN] :end-before: [SECTION-REFERENCES-END] .. include:: ../labs/introduction.rst :start-after: [SECTION-DOCUMENTATION-BEGIN] :end-before: [SECTION-DOCUMENTATION-END] .. include:: ../labs/kernel_modules.rst :start-after: [SECTION-OVERVIEW-BEGIN] :end-before: [SECTION-OVERVIEW-END] .. include:: ../labs/kernel_modules.rst :start-after: [SECTION-MODULE-EXAMPLE-BEGIN] :end-before: [SECTION-MODULE-EXAMPLE-END] .. include:: ../labs/kernel_modules.rst :start-after: [SECTION-COMPILE-MODULES-BEGIN] :end-before: [SECTION-COMPILE-MODULES-END] .. include:: ../labs/kernel_modules.rst :start-after: [SECTION-LOAD-MODULES-BEGIN] :end-before: [SECTION-LOAD-MODULES-END] .. include:: ../labs/kernel_modules.rst :start-after: [SECTION-DEBUG-MODULES-BEGIN] :end-before: [SECTION-DEBUG-MODULES-END] .. note:: If you want to learn how to easily browse through the Linux source code and how to debug kernel code, read the `Good to know <#good-to-know>`__ section. Exercises ========= .. include:: ../labs/introduction.rst :start-after: [SECTION-EXERCISES-REMARKS-BEGIN] :end-before: [SECTION-EXERCISES-REMARKS-END] .. _exercises_summary: .. include:: ../labs/exercises-summary.hrst .. |LAB_NAME| replace:: kernel_modules .. .. include:: ../labs/introduction.rst .. :start-after: [EXERCISE1-BEGIN] .. :end-before: [EXERCISE1-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE1-BEGIN] :end-before: [EXERCISE1-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE2-BEGIN] :end-before: [EXERCISE2-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE3-BEGIN] :end-before: [EXERCISE3-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE4-BEGIN] :end-before: [EXERCISE4-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE5-BEGIN] :end-before: [EXERCISE5-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE6-BEGIN] :end-before: [EXERCISE6-END] .. include:: ../labs/kernel_modules.rst :start-after: [EXERCISE7-BEGIN] :end-before: [EXERCISE7-END] .. _good-to-know: Good to know ============ The following sections contain useful information for getitng used to the Linux kernel code and debugging techniques. .. include:: ../labs/introduction.rst :start-after: [SECTION-CODE-NAVIGATION-BEGIN] :end-before: [SECTION-CODE-NAVIGATION-END] .. include:: ../labs/introduction.rst :start-after: [SECTION-DEBUGGING-BEGIN] :end-before: [SECTION-DEBUGGING-END]