[comp.sys.isis] Description of V3.0 naming interface

ken@gvax.cs.cornell.edu (Ken Birman) (01/10/91)

Starting with the V3.0 release from IDS (but also in the V2.2 release
from Cornell), ISIS will support a UNIX-style of group pathnames.
However, the names do not correspond to a "real" file system name space
yet, and can reference "directories" that do not exist.

There is one new system call:
	pg_chgrp("pathname") 
For example
	pg_chgrp("/");
	pg_chgrp("/usr/grps/ken");
	pg_chgrp("../alarms");

Names that don't start with a '/' are interpreted relative to the current
"group name".  For example,
	gaddr_p = pg_lookup("twenty");
	gaddr_p = pg_lookup("../twenty");
	gaddr_p = pg_lookup("../alarms/bedside");

The interpretation is just as for UNIX.  Thus, the following sequences
are equivalent:

  Sequence 1:
	pg_chgrp("/icu/beds/bed21");
	...
	gaddr_p = pg_lookup("alarm/printed");
  Sequence 2:
	gaddr_p = pg_lookup("/icu/beds/bed21/alarm/printed");

The default "working group" (the one used if you don't call pg_chgrp)
is "/" if the first group name you reference does not contain a '/'.

If it DOES contain a '/', we do something more tricky.  Say that your
program starts by creating a process group "/nmrd/norway/signals/db",
without first calling pg_chgrp.  Our code interprets this as the sequence
	pg_chgrp("/nmrd/norway/signals");
	... create "db" ...
This is done so that a subsequent reference to "data" will map to
"/nmrd/norway/signals/data", rather than "/data".  

Please feel free to post comments on this.  Note that the names used
only look like file system names.  In fact, under the current scheme,
there aren't any real file system entries corresponding to these 
names.  In the future, of course, it would be nice to just use the
file system for naming and dispense with any internal ISIS mechanism.

-- Ken Birman