[Linux Device Drivers 3rd Notes] 1. Device driver introduction
Device drivers在linux kernel种起着特殊的作用,当hardware和internal programming interface需要通讯的时候,drivers就会在runtime被plug-in进来。
The role of a device driver is providing mechanism, not policy.
如何区分mechanism与policy? "What capabilities are to be provided" -> mechanism, "How those capabilities can be used" -> policy
Kernel's role:
1. Proces management - Creating and destroying processes / handling their connection to the outside world (input and output) / communication among different processes / control how processes ahre the CPU
2. Memory management - Builds up a virtual addressing space for all processes / simple malloc and free pair to much more complex functionalities
3. File systems - Build a structured filesystem on top of unstructured hardware
4. Device control - Control all devices by device driver
5. Networking - Delivering data packets across program and network interfaces / implement routing and address resolution issues.