The UNIX Time-Sharing System
📜 Abstract
UNIX is a general-purpose, multi-user, interactive operating system for the Digital Equipment Corporation PDP-11/40 and 11/45 computers. It offers a number of features seldom found even in larger operating systems, including: (1) a hierarchical file system incorporating demountable volumes; (2) compatible file, device, and inter-process I/O; (3) the ability to initiate asynchronous processes; (4) system command language selectable on a per-user basis; and (5) over 100 subsystems including a dozen languages. This paper discusses the nature and implementation of the file system and of the user command interface.
✨ Summary
Paper summary
The paper describes an early multi-user UNIX system implemented on the PDP-11/40 and PDP-11/45. Its central design principle is uniformity: ordinary files, directories, devices, and interprocess communication are exposed through closely related interfaces. The hierarchical file system supports path names, links, removable file-system volumes, protection bits, set-user identification, and a privileged super-user. Its implementation uses indexed file metadata, indirect disk addressing, link counts, and buffered block I/O.
The process model is based on fork, execute, wait, and exit. fork creates a child process that inherits the parent’s open files, while execute replaces the child’s program image. Pipes provide interprocess communication using the same read and write operations used for files. The shell builds on these primitives to provide standard input and output, redirection, pipelines, background execution, command sequences, command files, and user-selectable login programs. This makes the shell an ordinary user-level program rather than a fixed component of the kernel.
The authors attribute UNIX’s practicality to small scale, interactive use, self-hosting, programming convenience, and implementation economy. The paper records the system’s use in document preparation, Bell System data processing, telephone-service operations, language development, and operating-systems research. It also identifies Berkeley time-sharing, Multics, and TENEX as important influences on specific design elements.
Influence
Later work by Dennis Ritchie explicitly examined the evolution of UNIX’s file system, process-control mechanism, and pipelined commands, confirming these as central elements of the system’s subsequent development. (onlinelibrary.wiley.com) Bell Labs publications from the late 1970s documented UNIX as a foundation for software development, document preparation, and operational applications within telephone-company environments. (nokia.com) A later portability study linked UNIX’s growth to the portability of both its operating system and user programs, documenting ports to processors including the Intel 8086, UNIVAC 1100 series, and AT&T 3B systems. (bell-labs.com)