}begin heresy{
In the interest of giving everybody a common enemy against which they can
unite :-) I will submit that VMS has had this for a long time and arguably
it works well. The kernel does pick a (simple) structure for names, a
structure that does not please everyone but is at least consistent and
fairly cheap. The kernel also provides a generator function,
SYS$GETDVI(), which will produce one-by-one the names of all the tape
devices, or all the disks on cluster node FOO, etc. It doesn't cover bus
topologies IIRC but that could be easily added (and there were times when
I could have used it). If you pass a complete device name to SYS$GETDVI()
you can ask for all sorts of information about it, or you can get the name
of the "next" device (that's why I call it a generator).
The Linux kernel already provides a simple, cheap naming scheme for
devices which is so generic that nobody ever uses it: (major, minor) .
Given the availability of sufficient information from the kernel (a master
list of all devices, detailed location and functional characteristics of
each device) it wouldn't be too hard to write a library function to lookup
devices by constraints such as bus, devicetype, sequential/random, or
anything else you desire. devfs can do this sort of thing at the
(arguably slight) cost of creating and maintaining a potentially large set
of duplicate names for each device. But maybe a filesystem is the wrong
way of looking at this problem. Maybe a database query is a more useful
model.
(Note to shell-scripters: the VMS "shell" includes a builtin function
F$GETDVI() that exports SYS$GETDVI() functions into command scripts.
There's no reason that a similar facility can't be written to wrap around
a library function to do the same for your scripts.)
(Note to VMS-heads: I know SYS$whatever is a syscall, not a library
function. I figured that this community would prefer a library function
to another syscall. There may be performance issues that will force the
choice one way or the other.)
}end heresy{
-- Mark H. Wood, Lead System Programmer mwood@IUPUI.Edu Specializing in unusual perspectives for more than twenty years.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/