/sys/devices
contains every physical device that has been discovered by the bus types registered with the
kernel represented as a tree (the «Kernel device tree»).
Device tree
With two exceptions, each device is shown as a subordinate device of the device that it is physically (electrically) subordinate to.
The two exceptions are:
Platform devices | Peripheral devices that are inherent to a particular platform typically having some I/O ports or MMIO that exists at a known, fixed location. Examples for platform devices include legacy x86 devices like a serial controller, floppy controllers or embedded devices of a SoC solution. |
System devices | Non-peripheral devices that are integral components of the system. They may have some hardware register access for configuration, but do not have the capability to transfer data. They usually do not have drivers which can be bound to them. But, at least for those represented through sysfs, have some architecture-specific code that configures them and treats them enough as objects to export them. Examples of system devices include CPUs, APICs and timers. |
A devices found in the device tree is internally a struct device
.