The Linux kernel labs documentation is a collection of "labs" for various device driver topics. For each topic there are two parts: a walk-through which explain the basic concepts and a hands-on part which contains a few exercises. This patch series introduces the lab infrastructure and documentation and has two labs serving as demos (the rest can be found on github) The Linux kernel labs integrates with Documentation/ system from the Linux kernel and offer an easy to configure development environment based on qemu. To view the generated Linux kernel labs documentation have a look at: https://linux-kernel-labs.github.io/ The rest of the labs can be found on github at: https://github.com/linux-kernel-labs/linux This is based on the labs of the Operatings Systems Internals class [1], Computer Science department, Faculty of Automatic Control and Computers, Politehnica Univesity of Bucharest. [1] https://ocw.cs.pub.ro/courses/so2 Octavian Purdila (3): labs: add lab infrastructure and documentation labs: add kernel modules lab labs: add kernel api lab Documentation/labs/conf.py | 1 + Documentation/labs/exercises-summary.hrst | 42 + Documentation/labs/exercises.rst | 82 ++ Documentation/labs/index.rst | 35 + Documentation/labs/kernel_api.rst | 788 +++++++++++++++++ Documentation/labs/kernel_modules.rst | 961 +++++++++++++++++++++ Documentation/labs/subst.hrst | 4 + Documentation/labs/vm.rst | 157 ++++ README.rst | 1 + tools/labs/.gitignore | 7 + tools/labs/Makefile | 42 + tools/labs/qemu/Makefile | 61 ++ tools/labs/qemu/create_net.sh | 37 + tools/labs/qemu/kernel_config.x86 | 79 ++ tools/labs/qemu/prepare-image.sh | 28 + tools/labs/qemu/qemu.sh | 21 + tools/labs/templates/generate_skels.py | 55 ++ tools/labs/templates/kernel_api/1-mem/Kbuild | 3 + tools/labs/templates/kernel_api/1-mem/mem.c | 46 + .../labs/templates/kernel_api/2-sched-spin/Kbuild | 3 + .../templates/kernel_api/2-sched-spin/sched-spin.c | 40 + tools/labs/templates/kernel_api/3-memory/Kbuild | 3 + tools/labs/templates/kernel_api/3-memory/memory.c | 71 ++ tools/labs/templates/kernel_api/4-list/Kbuild | 3 + tools/labs/templates/kernel_api/4-list/list.c | 100 +++ tools/labs/templates/kernel_api/5-list-full/Kbuild | 3 + .../templates/kernel_api/5-list-full/list-full.c | 145 ++++ tools/labs/templates/kernel_api/6-list-sync/Kbuild | 3 + .../templates/kernel_api/6-list-sync/list-sync.c | 173 ++++ tools/labs/templates/kernel_api/7-list-test/Kbuild | 3 + .../templates/kernel_api/7-list-test/list-test.c | 32 + .../templates/kernel_modules/1-2-test-mod/Kbuild | 3 + .../kernel_modules/1-2-test-mod/hello_mod.c | 21 + .../templates/kernel_modules/3-error-mod/Kbuild | 3 + .../templates/kernel_modules/3-error-mod/err_mod.c | 26 + .../templates/kernel_modules/4-multi-mod/Kbuild | 5 + .../templates/kernel_modules/4-multi-mod/mod1.c | 27 + .../templates/kernel_modules/4-multi-mod/mod2.c | 4 + .../templates/kernel_modules/5-oops-mod/Kbuild | 4 + .../templates/kernel_modules/5-oops-mod/oops_mod.c | 27 + .../labs/templates/kernel_modules/6-cmd-mod/Kbuild | 3 + .../templates/kernel_modules/6-cmd-mod/cmd_mod.c | 26 + .../templates/kernel_modules/7-list-proc/Kbuild | 3 + .../kernel_modules/7-list-proc/list_proc.c | 35 + .../labs/templates/kernel_modules/8-kprobes/Kbuild | 3 + .../templates/kernel_modules/8-kprobes/kprobes.c | 92 ++ tools/labs/templates/kernel_modules/9-kdb/Kbuild | 3 + .../templates/kernel_modules/9-kdb/hello_kdb.c | 144 +++ 48 files changed, 3458 insertions(+) create mode 100644 Documentation/labs/conf.py create mode 100644 Documentation/labs/exercises-summary.hrst create mode 100644 Documentation/labs/exercises.rst create mode 100644 Documentation/labs/index.rst create mode 100644 Documentation/labs/kernel_api.rst create mode 100644 Documentation/labs/kernel_modules.rst create mode 100644 Documentation/labs/subst.hrst create mode 100644 Documentation/labs/vm.rst create mode 120000 README.rst create mode 100644 tools/labs/.gitignore create mode 100644 tools/labs/Makefile create mode 100644 tools/labs/qemu/Makefile create mode 100755 tools/labs/qemu/create_net.sh create mode 100644 tools/labs/qemu/kernel_config.x86 create mode 100755 tools/labs/qemu/prepare-image.sh create mode 100755 tools/labs/qemu/qemu.sh create mode 100755 tools/labs/templates/generate_skels.py create mode 100644 tools/labs/templates/kernel_api/1-mem/Kbuild create mode 100644 tools/labs/templates/kernel_api/1-mem/mem.c create mode 100644 tools/labs/templates/kernel_api/2-sched-spin/Kbuild create mode 100644 tools/labs/templates/kernel_api/2-sched-spin/sched-spin.c create mode 100644 tools/labs/templates/kernel_api/3-memory/Kbuild create mode 100644 tools/labs/templates/kernel_api/3-memory/memory.c create mode 100644 tools/labs/templates/kernel_api/4-list/Kbuild create mode 100644 tools/labs/templates/kernel_api/4-list/list.c create mode 100644 tools/labs/templates/kernel_api/5-list-full/Kbuild create mode 100644 tools/labs/templates/kernel_api/5-list-full/list-full.c create mode 100644 tools/labs/templates/kernel_api/6-list-sync/Kbuild create mode 100644 tools/labs/templates/kernel_api/6-list-sync/list-sync.c create mode 100644 tools/labs/templates/kernel_api/7-list-test/Kbuild create mode 100644 tools/labs/templates/kernel_api/7-list-test/list-test.c create mode 100644 tools/labs/templates/kernel_modules/1-2-test-mod/Kbuild create mode 100644 tools/labs/templates/kernel_modules/1-2-test-mod/hello_mod.c create mode 100644 tools/labs/templates/kernel_modules/3-error-mod/Kbuild create mode 100644 tools/labs/templates/kernel_modules/3-error-mod/err_mod.c create mode 100644 tools/labs/templates/kernel_modules/4-multi-mod/Kbuild create mode 100644 tools/labs/templates/kernel_modules/4-multi-mod/mod1.c create mode 100644 tools/labs/templates/kernel_modules/4-multi-mod/mod2.c create mode 100644 tools/labs/templates/kernel_modules/5-oops-mod/Kbuild create mode 100644 tools/labs/templates/kernel_modules/5-oops-mod/oops_mod.c create mode 100644 tools/labs/templates/kernel_modules/6-cmd-mod/Kbuild create mode 100644 tools/labs/templates/kernel_modules/6-cmd-mod/cmd_mod.c create mode 100644 tools/labs/templates/kernel_modules/7-list-proc/Kbuild create mode 100644 tools/labs/templates/kernel_modules/7-list-proc/list_proc.c create mode 100644 tools/labs/templates/kernel_modules/8-kprobes/Kbuild create mode 100644 tools/labs/templates/kernel_modules/8-kprobes/kprobes.c create mode 100644 tools/labs/templates/kernel_modules/9-kdb/Kbuild create mode 100644 tools/labs/templates/kernel_modules/9-kdb/hello_kdb.c -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html