Chapter 6 Migrating Device Drivers

Table of Contents

6.1 Considerations for Porting Device Drivers
6.2 Reading and Writing Data from or to User Space
6.3 About Handling Access to Shared Resources
6.4 About the Bus Model
6.5 About Character Device Drivers
6.6 About Block Device Drivers
6.7 About Network Device Drivers
6.8 About USB Device Drivers
6.9 About the Sysfs File System
6.10 Loading Device Drivers as Kernel Modules

Device driver software is tightly coupled to the operating system on which it is running. To be able to develop a device driver, you must have a thorough knowledge of the operating system architecture and internals. When writing a device driver, you need to study the operating system (kernel) interfaces that your driver will use to access the hardware.

This chapter provides an overview of how Oracle Linux device drivers are usually implemented and contrasts this approach with that usually encountered on UNIX-like operating systems.

For more information about how to write Device Drivers for Linux systems, see Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman.