Linux Device Drivers
2h 49mIntermediate2020-12-02
Authors

Kevin Dankwardt
Linux Leader, Embedded Linux Authority
Course details
One of the most important functions of any operating system is managing various types of hardware connected to the system, from simpler items like serial ports and keyboards to more complex hardware like USB cameras, hard drives, and networked devices. By understanding how Linux device drivers function, you can derive useful insights into the behavior of the Linux kernel and how users and developers can—and cannot—interact with devices. In this course, Kevin Dankwardt explains how loadable kernel modules work, then details three different types of Linux device drivers—character device drivers, block drivers, and network drivers—and the aspects and uses of each. Kevin covers the basics of each type of driver, and then guides you through writing, debugging, tracing, and adding functionality to the different device drivers.
Skills covered
Software AdministrationLinuxNetwork and System AdministrationOpen SourceDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Explore Linux device drivers
- 02 - What you should know
1. How Loadable Modules Work
- 03 - Describe the benefits of loadable modules
- 04 - Effectively use module commands
- 05 - Use and define module parameters
- 06 - Work with licensing and modules
- 07 - Challenge - Work with loadable modules
- 08 - Solution - Work with loadable modules
2. Compiling and Debugging
- 09 - Writing a loadable kernel module
- 10 - Build and load a loadable module
- 11 - Use printk() for tracing and debugging
- 12 - Use tracing and debugging
- 13 - Challenge - Write, trace, debug
- 14 - Solution - Write, trace, debug
3. Character Device Drivers
- 15 - Create and use device files
- 16 - Implement character device driver file operations
- 17 - Write a character device driver
- 18 - Understand the user and kernel address spaces
- 19 - Challenge - Write a character driver
- 20 - Solution - Write a character driver
4. Block Drivers
- 21 - Use block device files
- 22 - Describe the function of the block layer
- 23 - Implement block driver operations
- 24 - Handle the block request queue
- 25 - Challenge - Write a block driver
- 26 - Solution - Write a block driver
5. Network Drivers
- 27 - Look at the role of network device drivers
- 28 - Examine the net device ops structure
- 29 - Examine PCI related API in network drivers
- 30 - Challenge - Using tools with a network driver
- 31 - Solution - Using tools with a network driver
Conclusion
- 32 - Learn more about Linux device drivers
Related courses
- AWS: Monitoring, Logging, and Remediation
- AWS Certified SysOps Administrator - Associate (SOA-C02) Cert Prep
- Complete Guide to Jira Administration: Configuration, Management, and Automation
- Linux Device Drivers: Reading, Writing, and Debugging
- Windows Server 2025: Manage, Monitor, and Maintain Servers
- Learning SFTP
- Virtualization: Configuring VMs Across Platforms with VMware, Hyper-V, VirtualBox, Vagrant, and KVM
- Advanced 5G NR (New Radio) Technologies