On "The UNIX Time-sharing System"

Post date: Nov 23, 2012 12:17:43 PM

In this paper, UNIX is introduced as an operating system for PDP-11 computers from Digital Equipment Corporation. The advantage of the proposed operating system lies in its efficiency, elegance and simplicity of use, especially for software developers. During the time of the system's development (1970s), most terminals are mainly used for batch processing. Interactive operating systems, though available, are usually expensive.

Their work shows that the goal of building interactive programs can be achieved with minimal human effort and cheap cost (based on hardware considerations). The paper discusses the architecture and implementation of the file system to realize these objectives.

Most of the techniques introduced in the paper remains adapted to known operating systems nowadays.

Some of these techniques have already been done in the past; the paper contributes to the integration and selection of the appropriate techniques to achieve a desirable operating system. The techniques in the paper is mainly founded on the creation of a logical structure to organize files. The concept of a directory which imposes a hierarchical order on files remains adapted to almost all operating systems. The paper discusses that this filename entries in the directory only stores a link to a description of a file in the memory, including the physical address on the file in memory. Thus, when an entry in a directory is deleted, the file is dereferenced but not necessarily deleted. Other ideas discussed in the paper which is worthy of noting is the idea of subdirectories rooted on a removable device via the concept of a directory. Special files shall be created for every I/O device so that in processes, there is uniform treatment between I/O calls and file operations. The paper also uses the concept of fork, pipe, wait commands as methods used for execution of asynchronous and parallel processes. Forking remains an essential method of performing processes. It is an essential method for executing commands in a command shell. On the other hand, since the desired system is designed for ease of use for developers, less priority is assigned for issues on file accessing for multiple users and data recovery in times of system crash.