[net.unix-wizards] naming directories

lepreau%utah-cs@sri-unix.UUCP (02/15/84)

From:  Jay Lepreau <lepreau@utah-cs>

For the benefit of Internetter's w/o access to net.sources, I have made
Glenn's code available by anonymous ftp from here.  (I haven't tried it
yet-- just assuming it's good, knowing what naming dirs are.)  His files
are in "shell archive format", and on utah-cs are named
	dist/namedir-sys.shar
	dist/namedir-emacs.shar

(You may well get this msg before his.  He implemented naming dirs for
4.2, and included hacks to the csh and to emacs to deal with them and
symlinks better, according to his msg.)

glenn@nsc.UUCP (Glenn Skinner) (02/19/84)

I've posted to new.sources a set of files and diff -c outputs for
incorporating naming directories into 4.2 bsd systmes.

The concept of a naming directory is taken from "Proposals for enhancements
of UNIX on the VAX", UCB CSRG TR/4, August, 1981.  This document contains
proposals for many features to add to 4.1 bsd; it describes preliminary
thoughts on what later turned into 4.2 bsd.  Naming directories were proposed,
but didn't make it into 4.2, presumably due to lack of time.

Each process in a system supporting naming directories has an additional
associated directory beyond the normal working and root directories.  This
new directory, the naming directory, embodies a starting point for paths
starting with '@', just as the root directory is the starting point for
paths starting with '/'.

There is a new namedir system call for changing a process's naming directory;
it is analagous to the chdir and chroot system calls.

We've had this code installed on our system for about a month now and are
quite happy both with the implementation and with the naming directory
feature itself.

A separate distribution (to net.emacs) contains modifications to emacs
to handle naming directories.

Along with the changes to the C shell required for naming directory support,
we've added a new built in variable "hardpaths" for making life with symbolic
links easier.  When hardpaths is set, the C shell resolves each directory
pathname it encounters to contain no symbolic links, replacing the pathname
with an equivalent path containing only hard links.  We've found this variable
to be a great aid to sanity when coping with an environment rich in symbolic
links.

		-- Glenn Skinner
		National Semiconductor, Microprocessor Systems Division
		(408) 733-2600 x 335
		{fortune,menlo70,mtxinu}!nsc!glenn