fcc69f558abc6772d5a1ef65343349933e0c86e6
[cascardo/kernel/slides/.git] / 12dd / dd
1 %Device Driver Model
2 %Thadeu Cascardo
3
4 # Linux 2.6 Device Driver Model
5
6 * Design and Implementation by GregKH
7 * kobjects
8 * sysfs
9
10 # Buses
11
12 * A way to communicate with device
13 * Interface between Linux and hardware
14 * May allow hotplug of devices
15 * Examples:
16         - USB
17         - PCI
18         - I2C
19         - SPI
20         - ACPI
21         - Platform
22 * /sys/bus/
23
24 # Classes
25
26 * A view of the device
27 * Interface between Linux and user space software
28 * The interface may use character devices and/or sysfs or other interfaces
29 * Specific interface classes:
30         - block devices
31         - network devices
32 * Other classes:
33         - tty
34         - video4linux
35         - input
36         - backlight
37         - rtc
38 * /sys/class/
39
40 # Drivers
41
42 * Implement the communication with the hardware, usually through a bus
43 * Present a view of the device, communicating with user space
44 * Basically, links the bus and the class for a given device model (or a family)
45
46 # Device
47
48 * An object representing a device in the bus or a class device
49 * Establishes an hierarchy through the parent link
50 * A class device usually has a device in the bus as its parent