[RFC PATCH 0/3] Introduce Linux kernel labs documentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux