The UNIX Time-Sharing System*
D. M. Richie and K. Thompson
ABSTRACT
Unix is a general-purpose, multi-user, interactive operating system for the larger Digital Equipment Corporation PDP-11 and the Inter data 8/32 computers. It offers a number of features seldom found even in larger operating systems, including
(1) A hierarchical file system incorporating demount table volumes,
(2) Compatible file, device, and inter-process 1/0,
(3) The ability to initiate asynchronous processes,
(4) System command language select table on a per-user basis,
(5) Over 100 subsystems including a dozen languages,
(6) High degree of portability.
This paper discusses the nature and implementation of the file system and of the user command interface.
1. INTRODUCTION
There have been four versions of the Unix time-sharing system.
12 The earliest (circa 1969-70) ran on the Digital Equipment Corporation PDP-7 and -9 computers. The second version ran on the unprotected PDP-11/20 computer. The third incorporated multi programming and ran on the PDP-11/34, 140, 145, 160, and /70 computers, it is the one described in the previously published version of this paper, and is also the most widely used today. This paper describes only the fourth, current system that runs on the PDP-11/70 and the Inter data 8/32 computers. In fact, the differences among the various systems is rather small; most of the revisions made to the originally published version of this paper, aside from those concerned with style, had to do with details of the implementation of the file system.
Since PDP-11 Unix became operational in February, 1971, over 600 installations have been put into service. Most of them are engaged in applications such as computer science education, the preparation and formatting of documents and other textual material, the collection and processing of trouble data from various switching machines within the Bell System, and recording and checking telephone service orders. Our own installation is used mainly for research in operating systems, languages, computer networks, and other topics in computer science, and also for document preparation.
Perhaps the most important achievement of Unix is to demonstrate that a powerful operating system for interactive use need not be expensive either in equipment or in human effort: it can run on hardware costing as little as $40,000, and less than two man-years were spent on the main system software. We hope, however, that users find that the most important characteristics of the system are its simplicity, elegance, and ease of use.
Besides the operating system proper, some major programs available under Unix are :
A. C compiler
B. Text editor based on QED[1];
C. Assembler, linking loader,
D. Symbolic debugger Phototypesetting and equation setting programs[2, 3]
E. Dozens of languages including Fortran 77, Basic, Snobol, APL, Algol 68, M6, TMG, Pascal
There is a host of maintenance, utility, recreation and novelty programs, all written locally. The Unix user community, which numbers in the thousands, has contributed many more programs and languages. It is worth noting that the system is totally self-supporting. All Unix software is maintained on the system; likewise, this paper and all other documents in this issue were generated and formatted by the Unix editor and text formatting programs.