The notes are still being updated for the Summer 2008 term.

up to Department of Computer Science ↑
  fsu seal

Syllabus
Calendar
Cross Referenced Code
Meeting Times
Instructors:
Ted Baker
Andy Wang
Projects
Assignments
Notes
Other References
     

Linux Kernel & Device Driver Programming

CIS 4930:02/COP 5641:01, Summer B Term 2008

This is a hands-on course in operating system internals. Students configure, compile, and install a Linux kernel from sources; do the same for a kernel module; navigate and read the Linux kernel sources; design and implement a kernel module of your own; modify, or design and implement from scratch, a device driver; measure the performance of what you have modified or implemented.

This course is intended for people who have already completed an undergraduate course on operating systems like COP 4610, or who can convince the instructor that they have gained an equivalent general knowledge of operating systems in some other fashion. The course syllabus (see left) contains more specific prerequisites.

This is the sixth offering of the course.

Each term the students in this course write device drivers or other kernel modules, in teams. The devices for which students have written drivers include the PixelSmart 512-8 and Video Gala video frame grabbers, the "biopod" fingerprint scanner, and a driver for a Xilinx FPGA development board. The code produced by all the teams can be found by following this link.


Updated examples from Linux Device Drivers (3rd Edition) book (LDD3), that will compile with the Linux 2.6.25 kernel, have been placed in the lxr source directory, so that it should now be possible to compare versions using the lxr diff option. I have also posted the differences. These examples compiled, but that does not necessarily mean they are correct. If they work, they may no longer be considered good examples of current Linux device driver coding practices, due to the many changes that have occurred in the Linux kernel since LDD3 was written. See Jonathan Corbet's article for the scope of those changes.

© 2003-2008 T. P. Baker ($Id)