%Device Driver Model %Thadeu Cascardo # Linux 2.6 Device Driver Model * Design and Implementation by GregKH * kobjects * sysfs # Buses * A way to communicate with device * Interface between Linux and hardware * May allow hotplug of devices * Examples: - USB - PCI - I2C - SPI - ACPI - Platform * /sys/bus/ # Classes * A view of the device * Interface between Linux and user space software * The interface may use character devices and/or sysfs or other interfaces * Specific interface classes: - block devices - network devices * Other classes: - tty - video4linux - input - backlight - rtc * /sys/class/ # Drivers * Implement the communication with the hardware, usually through a bus * Present a view of the device, communicating with user space * Basically, links the bus and the class for a given device model (or a family) # Device * An object representing a device in the bus or a class device * Establishes an hierarchy through the parent link * A class device usually has a device in the bus as its parent