Linux Device Driver
Chapter 1
Anupam Datta
Advised Reading
LDD3 Chapter 1 : https://static.lwn.net/images/pdf/LDD3/ch01.pdf
Role
Device driver provides mechanism, not policy.
Splitting kernel :
● Process management
● Memory management
● Filesystem
● Device control
● Networking
Loadable module - add functionality while system running.
Class of device and module
Character, block & network module
➔ Character - stream of bytes like file. Implements open, close, read, write.
Example : /dev/console, /dev/ttyS0. Sequential access by filesystem node, no
back forth unlike regular file.
➔ Block - Almost like char but differs how kernel manages data internally
➔ Network - Send-receive supervised by device subsystem.
Security
Security enforced by kernel code
Avoid encoding security policy in code. Exception - If affects global resource such
as hardware, ie. setting interrupt line.
Module loading can be disabled in kernel.
Even numbered kernels are stable.

Linux Device Driver v3 [Chapter 1]

  • 1.
  • 2.
    Advised Reading LDD3 Chapter1 : https://static.lwn.net/images/pdf/LDD3/ch01.pdf
  • 3.
    Role Device driver providesmechanism, not policy. Splitting kernel : ● Process management ● Memory management ● Filesystem ● Device control ● Networking Loadable module - add functionality while system running.
  • 4.
    Class of deviceand module Character, block & network module ➔ Character - stream of bytes like file. Implements open, close, read, write. Example : /dev/console, /dev/ttyS0. Sequential access by filesystem node, no back forth unlike regular file. ➔ Block - Almost like char but differs how kernel manages data internally ➔ Network - Send-receive supervised by device subsystem.
  • 5.
    Security Security enforced bykernel code Avoid encoding security policy in code. Exception - If affects global resource such as hardware, ie. setting interrupt line. Module loading can be disabled in kernel. Even numbered kernels are stable.