EEC Logo

Linux Device Driver Development

Duration: 5 days


This course delves deep into the implementation details of the Linux device driver subsystem. This course is targeted at individuals who intend to write device drivers or kernel modules.

Course Contents

  1. Introduction to Linux Device Drivers

  2. Creating Linux Modules

  3. Creating a Character Device Driver

  4. Managing Hardware Resources

  5. Programming with ioctl()

  6. Linux Cross-Memory Access

  7. Utilities for Linux Device Drivers

  8. Linux Interrupts and Serialization

  9. Linux Block Device Drivers

  10. Memory-Mapped Device IO

Course Objectives

Upon completion of this course, the student will be able to describe the various aspects of Linux driver development and write basic device drivers for character and block devices. In addition, the hands-on exercises will reinforce the issues involved in kernel code development.

Instructional Technique

Students are invited to bring their current ideas and questions to the classroom for discussion. Case studies, lecture, group problem solving, and online laboratories will be used. Students will be encouraged to enhance their skills utilizing the techniques presented through classroom problem solving and controlled online workshops.


The only prerequisite is that students should be familiar with the Unix/Linux command line interface. The students will be expected to execute commands, edit files, and navigate around system directories. Many of the labs require shell command line familiarity. Knowledge of the C programming language (used to develop the drivers) is not strictly required, but the benefit of this course is greatest when the student has experience with programming in C.