Semantics of symlinks and distributed FS

dmr at alice.UUCP dmr at alice.UUCP
Sat Feb 7 16:46:24 AEST 1987


Bob Lenk wondered about the interpretation of symbolic links
by file servers.  The issue is the meaning a link to an
"absolute" name (beginning with /).

In the Eighth Edition (and now the Ninth Edition) the formal answer
is that you get to choose: the server takes an argument indicating
whether it should interpret the / as the root of its machine or
of its client.  In practice, the flag is always set so that symlinks
refer to the root of the server.

The reason for doing this is that the links are always used to
simplify naming on the machine on which they exist; for example,
on one of them, /usr is full of links to the actual locations
of people's home directories (/usr/dmr -> /usr1/dmr).
It's true that even under the other interpretation, the links
could have been coded differently (/usr/dmr -> ../usr1/dmr)
but they weren't.

More fundamentally, in our naming scheme there is no super-root
(above / on all the machines).  I think this is true of both NFS
and RFS as well.  In the Newcastle Connection, there is such a concept
(/..) but even there, the name interpretation is such that / means
"root of this machine's file system."  In all of these schemes
the various machines tend to be members of a confederacy instead of a union.
To get find examples of the latter, you have to go a bit farther afield
(e.g. to Locus).

If / does not refer to a unique place, then its desired meaning in a symbolic
link will inevitably be circumstantial.  If a server machine exists
solely to supply a file system to its clients, then a case can be
made that / on the server machine should mean the root of the client.
If clients and servers are symmetric, the meaning really has to be
with respect to the server.

	Dennis Ritchie



More information about the Comp.unix.wizards mailing list