Lab: Linux Kernel Lab
Hands-on communication engineering right in the heart of the operating system.
![]()
- SWS: 4, ECTS: 8.0, (for 10.0 , e.g. Media Informatics, you need to write a detailed project report)
- Prof. Dr. Klaus Wehrle, Stefan Götz
- Student website with course material
- Important dates:
- Weekly meetings: Tuesdays 13:30 to 15:30 in the i4 seminar room (Room 4105, Building E1, Ahornstr. 55, Computer Science Campus), Thursdays 14:30 to 16:00 in the LuFGi4 lab room 2U12
- Kick-off meeting: October 16th, 2007, i.e. the first Tuesday in the term, same place and time as above
- Registration: closed
- Part I: kernel basics: October, November
- Part II: individual projects: December to February, maybe March
- Presentation of results: end of February, possibly in lecture-free time
Why you want to hack a kernel
Operating systems like Linux and Windows are said to be dead with each new version and even deader with the advent of browser-based Internet applications like Google Documents but reality points quite a different way: the kernel way. Support for
- processor virtualization
- trusted platforms
- multi-core systems
- ever-growing device functionalities
and more - all this would be useless and pointless without getting your hands a little dirty in the kernel mud.
All the discussions on the Linux kernel mailinglist show just how many unsolved questions there are as to how to make your computer a lot faster and more useful tomorrow. And the cool thing is: you can easily contribute and get your own name into the Linux sources.
Among the side-effects of kernel hacking are:
- crash dumps
- debugging nightmares
- caffeine addictions
- a fundamental understanding of how and why computers work
- excellent programming skills
- insights into basic future hardware and system developments
- a big asset on your resume
Why we want you to hack a kernel
That one's easy: because our research projects are real-world designs often revolving around communication engineering in kernel space, so we need you to help us build them (in the lab, on a Hiwi job, during a master thesis, etc.).
How you learn to hack a kernel

The lab starts with a six-week phase of week-to-week projects for lab groups of two students to get rooted in the basics of kernel programming and communication engineering in that environment. Since these weekly projects build on top of each other, the learning curve is quite manageable and ends in a usable, touchable single result. The topics in this phase include basic ground work like:
- what is an operating system
- Linux kernel modules
- memory management
- event management
- networking data structures and functionality
- protocol design and implementation, protocol management in the kernel
- interfaces to user space
In the second phase, each lab group picks a lab projects (we offer enough for everyone but your ideas are more than welcome), having the remaining semester to design and implement that project with the support of a teaching assistant. Presenting your results at the end of the semester is also part of the lab.
Requirements
Since this is a lab in the area of communication system engineering and operating system development, you need to fulfill the following requirements to participate:
- prediploma or equivalent (e.g. be in a Master's program)
- some lectures in the area of Distributed Systems, Communication Systems and/or Mobile Communication
- experience with programming in C
- strong interest and willingness to contribute time


