coughs in Unix
coughs in Unix
You can even get it using the Unix path slashes in the 2.11 source code.
(udev assumes they live under /dev. I'm not sure if /dev is hardcoded in udev or configurable. But you don't have to use udev anyway, you can create device nodes manually.)
So there's actually a good reason for being able to create device nodes outside /dev.
You either have persistent files with special attributes that identify it as a device, or you namespace your devices with characters that cannot be used in a file name. But you don't allow your devices to be valid file names and have them invisible on the file system.
I never thought about it, but when you consider ‘:’ as the device suffix, this makes directory structures make more sense to me on Windows.
C:\foo\bar makes more sense to me if it is the ‘C:’ device. Calling it a ‘C drive’ with a separate namespace never made sense to me. Somehow thinking of it the ‘C:’ device in an anonymous global hierarchy makes more sense to me.
You'll still be able to create named pipes (mkfifo), but mknod will fail.
This is handy for filesystems with a poorly developed sense of user ownership and permissions, say, msdos or vfat.
I tend to mount my /tmp space nodev and nosuid, as occasionally you'll find poorly-written, or nefariously-intended programs attempting to do such things there.