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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to