So, how does devfs stack up to the above problems and constraints:
Problems:
1) devfs only shows the dev entries for the devices in the system.
Is this a problem? Where exactly this problem lies?
Probably something like
2) devfs does not handle the need for dynamic major/minor numbers
Neither does udev. Both take whatever driver gives them.
3) devfs does not provide a way to name devices in a persistent
fashion.
I am not sure what exactly you mean here.
They are of course not unsolvable. Those understanding them seems
4) devfs does provide a deamon that userspace programs can hook > into
to listen to see what devices are being created or removed.
Constraints:
1) devfs forces the devfs naming policy into the kernel. If you
don't like this naming scheme, tough.
kernel imposes naming scheme for exporting devices in sysfs. It is
possible to get rid of devfs_name in kernel and use those names
that must exist anyway to support udev as well. devfs has
devfsd that can call whatever naming agent you like.
2) devfs does not follow the LSB device naming standard.
it is user-space (devfsd) issue, not kernel space (devfs)
3) devfs is small, and embedded devices use it. However it is
implemented in non-pagable memory.
Same for sysfs. Other Unices have pageable kernel memory. If Linux
had it any memory based filesystem could benefit from it. I did not
look at backing store for sysfs patches but it is likely that same
idea could be used for devfs.
Oh yeah, and there are the insolvable race conditions with the devfs
implementation in the kernel, but I'm not going to talk about them > right
I do not argue that current devfs implementation is ugly and racy. I
just beg you to point at what makes those races "unsolvable".