Sharing my PPT on the “Linux Bus, Device, and Driver Model” from a few years ago, which explains why Linux is designed this way, the reasons behind it, and its main design principles.1. An imagined Ethernet controller/a board
2. Decoupling
3. Unified binding
4. Bus, device, driver
5. Matching
6. Devices are devices, drivers are drivers
7. /sys
8. Perspective of /class
9. Bus cascading and power management
10. Devices in DTS scripts, drivers in C
11. ACPI and driver matching
12. Automatic loading of driver modules
13. sysfs modalias
14. driver_override
15. kobject
16. kref
17. kset
18. subsys













































