The UNIX Time-Sharing System
Review by Thorsten von Eicken, Jan 1998
Modified by Alin Dobra, Feb 1999
"Goals"
-
a system that's fun to use for program development and research
-
powerful yet small
-
easy to write, test and run programs
Achievements
Sophisticated operating system that runs on cheap machines
Simplicity (economy of features)
Full exploitation of small set of features
Important aspects
-
Design not influenced by predefined objectives, very small team of designers
-
Multitasking, multiuser operating system
-
File system namespace hierarchy, uniformity, and ubiquity
-
mapping of devices into filename space (Multics)
-
same operations for devices as for files
-
same namespace
-
same protection mechanism
-
Uninterpreted byte streams, applications have full control
-
Command shell is an ordinary executable (no special privileges)
-
Support for I/O redirection and unnamed pipes (Multics)
-
Simple access control mechanism, set-uid, set-gid
-
File system built around I-nodes
-
Support for removable file systems
-
File descriptors
-
Portability (most of the system implemented in C)
-
Class C security class (Multics has class B2)
-
Small programs that do their job well. Complex tasks can be performed by
combining these programs
-
All UNIX software mantained under UNIX (self-supporting)
-
No quota in the initial implementation
Questions
-
mis-features in original UNIX?
-
what happens if one deletes an open file?
-
what do you think about their discussion of locking files?
-
can you link across file systems?