From: James Welle (jwelle_at_Exchange.Microsoft.com)
Date: Tue Jan 06 2004 - 19:52:43 PST
"The UNIX Time-Sharing System" serves mainly as a very good
description of the early features of UNIX. The simplicity of this paper
and the elegance of the ideas presented in the paper reflect well on the
design of UNIX.
The paper describes the UNIX filesystem including files,
directories, removable file systems and how a mounted filesystem appears
as a file on the parent system. Devices and directories also appear as
files. This unified interface was designed to make programming on the
system easier.
Processes, pipes, synchronization, and the shell are all also
discussed. Again here the design seems very elegant and easy to
understand. Reading these sections was like a quick review of an
undergraduate operating systems class.
The description of buffering the read/write calls a program
makes was interesting from a reliability standpoint. There was no
mention of what would happen if a system crashed before the buffered
output had been flushed to disk. The openness of the file system and how
the security on files is divided between the owner and everyone else is
also interesting. This seems to be relatively relaxed security and
reliability. It is interesting to see that as systems have matured,
these two issues have become some of the most important. This is
probably true of any industry.
One of the most interesting things about this paper is that the
design and implementation of the system is still so similar today. The
concept of everything as a file, the shell, fork, and the
i-lists/i-nodes still live on and it really shows how elegant the design
is. This is very impressive and especially more so when you think about
the fact that the authors just set out to create "a more hospitable
environment" for programming.
I think the most important line in the entire paper is "First,
since we are programmers, we naturally designed the system to make it
easy to write, test, and run programs." This first principle of UNIX and
Linux has been one of the biggest issues of the system recently. The
systems were designed for programmers and that is readily apparent. If
Linux is going to become a mainstream desktop operating system, the
people working on these systems will have to show as much passion for
end-users as they have for programmers.
Reading this paper also tends to cause you to think about how
you would design a system from the ground up today. Given all the issues
in computing, maybe it is a good thing these guys were working in a
simpler framework. If not, maybe the system wouldn't be as elegant as it
is.
This archive was generated by hypermail 2.1.6 : Tue Jan 06 2004 - 19:53:32 PST