Whenever a device is added or removed from the computer,
a device node appears or vanishes at /dev.
A userspace device manager dynamically executes instructions
upon device events.
This can be used to change permissions, automatically mount storage media
or even just run an arbitrary executable.
For the Linux Kernel, there is a plethora of implementations available:
Source directories for all options are part of the goetia-linux package.
For compatibility reasons, eudev and systemd-udevd are the main choice for desktop systems. Do not use any of the alternatives unless you know what you are doing. If this is the case, the author recommends mdevd-conf.
On FreeBSD the default devd is the only choice you have. Its source directory is part of goetia-freebsd.
After making your choice of the
userspace device manager,
add the corresponding
source directories
to the bundle udev,
e.g. in case of:
udevd-srv
udevd-log
udevadm-settle
udevadm-trigger
mdevd-srv
mdevd-log
mdevd-coldplug
devd-srv
devd-log