Уф... давно дело было, конечно, но..... Во-первых, в вашем повествовании пропущена целая эпоха под названием udev.
Во-вторых, на сколько я помню, всю эту кашу заварили по сути из-за hotplug, когда ноды стали появляться и исчезать динамически. Devfs была интересной штукой, но в зависимости от последовательности вставления девайсов или в зависимости от енумератора шин при загрузке, девайсы не имели предсказуемых имен. По-моему, вот тут всё описано более менее четко: https://web.archive.org/web/20110411233322/http://kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs сб, 30 июл. 2022 г. в 14:24, Артём Н. <artio...@yandex.ru>: > Здравствуйте. > > > Пишу врезку для главы книги, и нужно краткую историю DevFS привести. > Кто-нибудь помнит реальные причины того, почему devfs "не взлетел" и был > заменён на devtmpfs? > > Уверен, что тут есть те, кто и первой активно пользовались, и в любом > случае, буду вам благодарен за любые замечания по тексту: > > ``` > Существовало несколько вариантов поддержки устройств в Unix-подобных ОС > и в Linux, в частности. Один из первых - скрипт MAKEDEV, который через > вызов makedev() создаёт большой набор файлов устройств, не проверяя то, > есть эти устройства реально или нет. Если пользователь обратится к > несуществующему устройству, система просто выдаст ошибку. Тогда /dev был > лишь подкаталогом корневой файловой системы. И созданные файлы устройств > существовали там всегда, а MAKEDEV запускался при необходимости. > > Затем разработчики Linux добавили в ядро поддержку devfs (не той, > которая используется сейчас). С ней возникли проблемы. Например, > пользовательские скрипты при загрузке должны были ожидать заполнения > иерархии и как-то синхронизироваться, необходимость явных вызовов изо > всех драйверов и т.д. Проблемы решались с переменным успехом, но система > не прижилась. > > Следующим шагом был демон devfsd, обращающийся к ядру. Он создавал > устройства, о которых ядро предоставляло информацию (т.е. которые > реально существуют). У такого подхода были недостатки: излишние > обращения к ядру, по сути двойное перечисление устройств, понижающие > скорость загрузки, необходимость поддержки в пространстве пользователя. > Всё это усложняло использование системы во встраиваемых устройствах. > > Современный Linux монтирует в /dev файловую систему DevTmpFS, которая > сразу отображает все перечисленные ядром устройства, и поддерживающий > различные правила и события демон udev, при необходимости, > обеспечивающий её динамическую конфигурацию из пространства пользователя. > ``` > > -- With best regards Maksim Dmitrichenko