HOME   *   CONTACT May 29, 2023 - 18:55 CST CALENDAR  *   DOCUMENTS  

Linux 2.6 Device Drivers

  This 3 day course teaches the students how the Linux 2.6 kernel is structured, how to develop and debug a device driver, and how to implement device drivers in a performance and stability centric manner. In this class, each student will implement, compile, load, debug, and unload a Linux 2.6 device driver. This class has a maximum size of only 7 students!

Course Outline

Day 1:

  • Linux 2.6 Kernel Overview
  • Memory Management
  • Memory IO Schedulers
  • Process Management
  • Process & Thread Abstraction
  • Kernel Tables
  • File System Management
  • System Call Subsystem
  • IO Management, Direct IO, Memory Mapping
  • Network Management
  • Install and Configure a Linux 2.6 Kernel
  • Lab

Day 2:

  • Performance Enhancements in Linux 2.6
  • Performance Tuning Process
  • Workload Profiling
  • Linux 2.6 Loadable Modules
  • Character & Block Devices
  • Tracing and Debugging in Linux 2.6
  • Design of a Device Driver Skeleton
  • Implementation of a Character Device Driver (I)
  • Lab

Day 3:

  • Compiling a Linux 2.6 Device Driver
  • Semaphores, Mutex's, and Spinlocks
  • Interrupt Handler
  • Identifying HW in Linux 2.6
  • PCI and USB Hardware Considerations
  • Implementation of a Character Device Driver (II)
  • Lab
Schedule Contracting Hotels Restaurants