next up previous contents
Next: Disk space control Up: DISK/DIRECTORY SYSTEM Previous: Access keys and locks

Directories

A directory was a disk object which consisted of a list of entries. Each entry contained a symbolic name, an object specification and a list of access-locks.
a)
The symbolic name was merely a sequence of characters.
b)
The object specifications could be one of three things:
i)
an owned entry;
ii)
a hard link, i.e., there would be a pointer to a disk object not owned by this entry;
iii)
a soft link, specified by a pointer to another directory, a text name to be used for look up in that directory and an access key.
c)
An access-lock was a pair:
i)
a number to be matched against an access key
ii)
a set of option bits.
Each disk object, except a root directory, had exactly one ownership entry in some one directory. Thus the directories formed the objects of the disk system into a tree structure. The access action required three arguments: a directory, a symbolic name, and an access key. If an entry was found in the directory with the symbolic name, the access-lock list for the entry was scanned. If a number in the access lock list was found which matched the number in the presented access key, then an ECS system user type capability for the object specified at the entry was returned with the option bits associated with the given access key number. (As described in the chapter on implementation of the disk/directory system, the directory system maintained private capability-creating-authorizations for creating user capabilities for disk objects.) The basic directory access action just described had a number of variations. In order to reduce the length of access lock lists, we defined a special access key, the null access key. The number in this key occurred implicitly in all lock lists and had an associated set of option bits, of which all others were subsets. The null access key was accepted as the third argument only if the directory capability in the first argument had an appropriate option bit on. A capability with this bit on was generally only available to the owner of the directory. If the object at the entry was found to be specified by a soft link, a further directory lookup was automatically made with the directory, text name and access key supplied by the entry. The intended purpose of this facility was to provide pointers to objects whose identity would change from time to time. The modification of the access-lock list for a given entry did not require possession of the indicated key. An ordinary datum containing the number of the key was sufficient (in addition to a suitable capability for the directory, of course). Thus, one user could provide access to one of his files for a second user, without ever possessing access to that second user's access key. The second user need only give the number of his access key to the first user (e.g., in a written note). Other actions on directories included provision for listing the contents of a directory, creating and deleting entries, etc.
next up previous contents
Next: Disk space control Up: DISK/DIRECTORY SYSTEM Previous: Access keys and locks
Paul McJones
1998-06-22