next up previous contents
Next: Passwords and accounting Up: COMMAND PROCESSOR Previous: TTY line collector

Naming

Obtaining an object by name within our system was somewhat complicated. There were two general reasons for this. First, we had a multiplicity of directories, and a user was generally confronted with at least three of them. Second, we tried to minimize the access a subsystem was given to a user's permanent directory. A user was confronted with at least three directories. There was a directory which contained publicly available system provided subsystems (system directory), such as the editor, SCOPE simulator and a printer driver. There was a directory which contained the users files which lived from session to session (permanent directory). Finally, there was a directory which contained temporary files associated with his current logged on teletype (temporary directory); such as scratch files containing the memory of subsystems he was using. It was necessary to maintain both a temporary and permanent directory for two reasons. First, two teletypes could be logged on under the same user name. Thus, they would have access to the same permanent user directory. A directory associated with the teletype was necessary in order to prevent naming conflicts among temporary files constructed by subsystems. Second, we associated disk space control with directories. Due to the limited amount of disk space available, it was necessary to severely limit the space occupied by files that lived from session to session. On the other hand, some subsystems required an enormous amount of temporary file space while running. Thus, the users permanent directory was provided with a small amount of space, while his temporary directory was provided with several times that amount of space. In general, whenever a name was presented to the system to be looked up in directories, it was intended to be looked up first in the temporary directory, then the permanent directory and finally the system directory. That is, try the most local scope first, and then try larger and larger scopes. In order to automate this, these three directories were placed in a scan list. Since a scan list was merely a C-list, if this scan list was provided to a subsystem, that subsystem would have access to the directories contained in the list. If those capabilities were strong enough, the subsystem could list all the names occurring in the directory, and using those names, delete all the files. We had a vision of a run away subsystem destroying, in a few seconds, all of a users permanent files. Also, it was necessary to provide some name look up facility to subsystems, e.g., for use by assemblers with facilities to include text in other files named by the one being assembled. In an attempt to prevent this somewhat unlikely catastrophe, while providing a name look up facility for subsystems, we provided two scan lists, one weak and one strong. The strong one would be used in response to commands typed on the teletype, while the weak one was supplied to the subsystems.
next up previous contents
Next: Passwords and accounting Up: COMMAND PROCESSOR Previous: TTY line collector
Paul McJones
1998-06-22