个人认为:
devfs = sysfs + udev
devfs在内核态工作,在读取node时加载驱动。udev 是用来管理 /dev 的,不是用来加载内核驱动的。devfs 用的方法导致了大量无用的 modprobe 尝试,以此程序探测设备是否存在。每个试探性探测都新建一个运行 modprobe 的进程,而几乎所有这些都是无用的。
udev在用户态工作,在发现设备时加载驱动(Linux 的设计是在设备被发现的时候加载模块,而不是当它被访问的时候)。udev 完全在用户态 (userspace) 工作,利用设备加入或移除时内核所发送的hotplug 事件 (event) 来工作。关于设备的详细信息是由内核输出 (export) 到位于 /sys 的 sysfs 文件系统的。所有的设备命名策略、权限控制和事件处理都是在用户态下完成的。与此相反,devfs 是作为内核的一部分工作的。