[OpenAFS-devel] DRAFT: New sysname standard

Jim Rees rees@umich.edu
Mon, 07 May 2001 11:34:01 -0400


I've been meaning to write something about Domain/OS.  I was one of the
designers of that system.  We called them "deviant links" (outside the
company they were called "variant links.")

Any pathname that contained text of the form

/$(FOO)/

would expand to the value of the $FOO environment variable.  I think this
worked anywhere, not just in symlink text.

Originally we used this distinguish between different release of the OS.  So
the loader would set $SYSTYPE to, for example, 9.7.  Then you would have

/usr/bin -> /usr/$(SYSTYPE)/bin

and several different versions of /usr/bin depending on the OS version.

Later this was expanded to also distinguish architecture type.  And at some
point we decided it would be useful to have separate variables for OS
version, one of which would determine which system calls got invoked, and
one would determine which view of the file system the program would see.

The security boundary in a Domain/OS system is between workstations on a
network, not processes within a single workstations, so it was ok to use
environment variables.  For unix I think you would want to use something
that only root can set.

Setting up a general mechanism like this in OpenAFS would be easy, and I
think, useful.  The hard part is deciding which variable names and values to
use.  But that can (and should) be done separately from the mechanism.