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