A driver drives, manages, controls, directs and monitors the entity under its command. What a bus driver does with a bus, a device driver does with a computer device (any piece of hardware connected to a computer) like a mouse, keyboard, monitor, hard disk, Web-camera, clock, and more.
Further, a “pilot” could be a person or even an automatic system monitored by a person (an auto-pilot system in airliners, for example). Similarly, a specific piece of hardware could be controlled by a piece of software (a device driver), or could be controlled by another hardware device, which in turn could be managed by a software device driver. In the latter case, such a controlling device is commonly called a device controller. This, being a device itself, often also needs a driver, which is commonly referred to as a bus driver.
General examples of device controllers include hard disk controllers, display controllers, and audio controllers that in turn manage devices connected to them. More technical examples would be an IDE controller, PCI controller, USB controller, SPI controller, I2C controller, etc.
1.Introduction |
Linux Driver Ecosystem |
The Kernel 2.6 Source Organization |
Driver Development Environment |
2.Character Drivers |
Major & Minor Numbers |
Registering & Unregistering |
Device Files & Device Classes |
File Operations & its related Kernel Data Structures |
Special Focus on open, release, read, write, ioctl |
Memory Access in Kernel Space |
3.Hardware Access Mechanisms |
System Memory |
Device Memory |
I/O Ports |
4.Debugging |
Kernel & Driver Debugging Options & Techniques |
Ways to Deal with Concurrency |
Time Keeping, Delays, and the Timers in Kernel |
5.USB Drivers |
USB Device Layout |
USB Driver Layout |
USB Core &Sysfs |
USB Driver Registration |
USB Device Hot-plug-ability |
URB & its Operations |
Special Focus on Control & Bulk Transfers |
6.Interrupts |
IRQs & their Registration |
IRQ Handling & Control |
Soft IRQs |
Top & Bottom Halves |
7.Block Drivers |
Driver Registration |
Disk Drive Registration |
Block Device Operations & its related Kernel DS |
Request Queues & their Processing |
8.File System Modules |
Virtual File System (VFS) Interfaces |
VFS Internals |
File System Registration & Operations |
Super Block Operations | Inode Operations | Address Space Operations |