From: David Coleman (David.Coleman_at_roxio.com)
Date: Wed Jan 07 2004 - 13:22:47 PST
The UNIX Time-Sharing System by Dennis Ritchie and Ken Thompson was an
interesting look at the UNIX system circa 1974. The paper covers two
topics, the file system and the shell, in fairly good depth and other
supporting topics fairly lightly but well enough to understand them. It
does a nice job of describing the inter-relation between items in the
design. The paper uses a pattern of overview of a subsystem followed by
a discussion of the implementation of the subsystem.
The description of the file system, both the overview and
implementation, was complete enough to envision the implementation.
Several concepts jumped out at me as being fairly revolutionary: mount
points, the "." and ".." directory entries, the concept that a file
isn't owned by its initial directory entry, files representing physical
devices, and the whole i-node design. I'm not sure how much these ideas
were influenced by other research, but they seem to be truly important
to the design and implementation of file systems today. Given the
elegance of the overall design, I was very surprised by the limitations
imposed by 14 character file names and 1 MB maximum file size.
The description of the functionality and implementation shell is also
complete enough to be useful. The shell simply using the process and
file system primitives to do its work was clearly illustrated and a
clever design. All devices being represented through files is a clever
concept that makes for simple and elegant handling of input and output
and piping the output from one program to the input of another and
illustrates the relationship between file system objects and the shell.
I felt this paper was an excellent introduction to the design and
implementation of the UNIX file system and shell. It does a good job of
presenting enough supporting information to clearly explain the
implementation of the file system and the shell. For example, a
discussion of processes, pipes, program execution, and process
synchronization precedes the section on the implementation of the shell
which shows how those items were successfully used.
This archive was generated by hypermail 2.1.6 : Wed Jan 07 2004 - 13:20:12 PST