Linux has had a long history of device managers. Initially, administrators needed to make sure that the device nodes were already present on the file system (/dev
was part of the persisted file system). Gradually, more dynamic approaches were used for device management.
Nowadays, device files are managed through a combination of a pseudo file system (devtmpfs
) and a user space device manager called udev. This device manager has been merged in systemd as well, becoming systemd-udevd
.
Note
There are projects, such as eudev, which provide udev functionality without requiring systemd to be installed and enabled on the system.
The device manager listens on a kernel socket for kernel events. These events inform the device manager about detected or plugged-in devices (or the removal of such devices) and allow the device manager to take appropriate action. For udev, these actions are defined in udev rules.