Не совсем imho: В devfs файлы устройств появлялись от вызова драйвером devfs_register.
devfsd мог по ним сделать символические ссылки, но сами файлы он не трогал.
В случае же udev, драйвер создает специальную структуру (она видна в /sys), и посылает uevent (через NETLINK), и udev уже создает нужную запись.
Кмк, дело было так:
До 2.4 все устройства создавались mkdev и драйвер привязывался к major номеру.
Ненужные файлы забивали /dev, путали пользователя, имели проблемы с безопасностью (решение о пермишенах принимал автор скрипта MAKEDEV) а еще и major номера начали кончаться (их было-то всего 255).
В 2.4 проблему решили devfs, позволив драйверу самому создавать устройство через devfs_register.
Подробнее погуглите главу "The Device Filesystem" второго (не третьего!) издания Linux Driver Development.
Стало лучше: в dev не стало несуществующих устройств и драйвер смог выбирать пермишены на файл.
Однако осталась проблемы, наример пользователь всё еще не мог выбирать как назвать устройство оперируя его идентификатором.
У каждой шины (PCI, USB) у устройства есть уникальные ID, и хотелось бы привязывать имена к ним.
Кроме того, все существующие имена приходилось хранить в памяти ядра (невыгружаемой). Появилось желание вынести это в userspace.
Всё это привело к вот такому (там много жалоб на devfs):
http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdfВ 2.6 сделали sys, куда драйверы стали репортовать свои устройства, затем посылать uevent, который забирал udev, и на основе рулов создавал нужное устройство,
а еще он по D-Bus мог сообщить об этом вашему DE, чтобы тот нарисовал красивый попап.
Почитать можно тут:
https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html#sysfsЧасть людей была против, вот тут их переубеждают:
https://lwn.net/Articles/65197/Затем udev смерджили с systemd:)
Но тут оказалось, что udev не нравится емебдщикам и не подходит для всяких rescue mode, потому что требует нехилый userspace udev.
Тогда был создан devtmpfs (тут подробно написано)
https://lwn.net/Articles/330985/Он просто брал имена (те, что драйверы репортуют в sys)и создавал для них устройства. Файловая система была создана на основе tmpfs, так что она была намного проще, и позволяла udevу работать поверх нее
Естественно, все тут же сказали "мы опять изобрели devfs!"
https://lwn.net/Articles/331818/Но утверждается, что:
* devtmpfs проще (сделана на основе tmpfs)
* совместима с udev