Linux Kernel Programming

Description

In this course, you will learn how to work in the context of a large low-level piece of software: the Linux kernel. You will learn to navigate this large and complicated code base, implement your own kernel modules using the kernel’s APIs and debug your code using QEMU and gdb.

The lecture will focus on presenting how the Linux kernel works, with a presentation of various subsystems. The exercises will allow you to put in practice what you learned and implement various modules, using the kernel’s tools to do so.

Course Information

Lecture: 2 SWS

Labs: 3 SWS

Language: English

Study program: Master Informatik, Master Software Systems Engineering

Offered in: Summer semester

Prerequisites:

  • Proficiency in C
  • Operating Systems and Software Systems course or equivalent

Content:

  • Advanced C programming techniques
  • Programming environment for the kernel
  • Writing a kernel module
  • Communication in the kernel
  • Memory management
  • Virtual File System
  • System calls
  • File systems