The required device information is exported by the sysfs file system. For every device the kernel has detected and initialized, a directory with the device name is created. It contains attribute files with device-specific properties. Every time a device is added or removed, the kernel sends a uevent to notify udev of the change.
The udev daemon reads and parses all provided rules from the
/etc/udev/rules.d/*.rules
files once at start-up and
keeps them in memory. If rules files are changed, added, or removed, the
daemon receives an event and updates the in-memory representation of the
rules.
Every received event is matched against the set of provides rules. The rules can add or change event environment keys, request a specific name for the device node to create, add symlinks pointing to the node, or add programs to run after the device node is created. The driver core uevents are received from a kernel netlink socket.