Skip Navigation Links

Course Length:
5 Days
Course Description:
Red Hat Enterprise Linux Kernel Device Drivers (RHD362) teaches experienced C programmers already familiar with the Linux kernel architecture the skills and strategies they need to develop device drivers. The course covers device driver models (including character, block, and network device drivers), device interaction (including port I/O, memory mapped I/O, interrupt handling, and DMA transfers), managing PCI and USB devices, strategies for deferring activity using tasklets and work queues, device registration using the Unified Device model and the sysfs filesystem, and process interaction, including basic file operations, polling, and wait queues.
Who Should Attend:
This course is for experienced C programmers with a good understanding of the Linux kernel who want to learn how to develop device drivers for Linux systems.
Benefits of Attendance:
Upon completion of this course, students will be able to:
  • Develop device drivers specifically for Linux systems.
  • Understand the Linux architecture, hardware and memory management, modularization, and the layout of the kernel source.
  • Grasp key concepts and skills for the development of character, block, and network drivers.
Prerequisites:
Experience in C programming is required. Students should also have taken Red Hat Linux Kernel Internals (RHD361) or have equivalent experience.
Course Outline:
  • Device driver models
  • Device driver registration
  • The Unified Device Model and the sysfs file system
  • Character device drivers and file operations
  • Interrupt handling
  • Deferring activity with tasklets
  • Deferring activity with work queues
  • Multiplexed I/O and polling
  • Wait queues
  • Interacting with devices using port I/O
  • Interacting with devices using memory mapped I/O
  • User space device drivers
  • Managing DMA transfers
  • PCI drivers
  • USB drivers
  • Introduction to network device drivers
  • Introduction to block device drivers
  • I/O Scheduling