Linux Kernel Programming in an Operating Systems Class

Since Fall of 2006, I have been working with Paul Paulson to integrate Linux kernel programming into CS 411, the Senior-level Operating Systems course here at OSU.  Our goals in doing so are to provide students with practical experience working with and programming in a real production operating system and, in addition, to introduce them to the type of collaborative effort that goes into working on a large, open-source project such as Linux.

Students have responded in an overwhelmingly positive manner to the Linux-based course, and, thanks in part to funding from Google and Intel, we are continually trying to improve it.  We have currently developed a series of five Linux kernel-based programming projects for the course and are working to develop additional ones.

Based on our success with CS 411, we encourage other CS educators to try a similar approach in their courses.  Full descriptions of our projects are available below, along with the grading criteria we use for each one.