My understanding is that the kernel understands how to communicate with the different hardware in a system via specific device trees.
How is it that I can download one version of Ubuntu and I am able to install this on any system where the hardware may vary?
The same goes for the BeagleBone embedded boards. There is a default Debian image which can flash to any of the different type of BeagleBone boards which have different peripherals. How does it know which device tree / device tree overlay to use when the same image works for all?
udev
! +1 – Fabby Jan 17 '19 at 22:03/sys
directory contains the entire 'device tree' that is present in the system, exported to userspace by the kernel. Is that what you are referring to? – Time4Tea Jan 17 '19 at 22:20/sys
directory for it; and sends out 'uevents' for each device.udevd
(userspace daemon) receives those uevents and loads the required kernel modules, depending on what information is in/sys
for the hardware. This page provides some more details. – Time4Tea Jan 17 '19 at 22:42