UNIX Time-Sharing System: A Retrospective (1978, Dennis Ritchie)

I don’t think I’ve posted about this before, it’s 24 short pages looking back at Unix from a 1978 perspective. I think I turned it up because I was interested - am still interested - in the history of which CPU architectures, first ran some version of Unix, and when.

UNIX* is a general-purpose, interactive time-sharing operating system primarily for the DEC PDP-11 series of computers, and recently for the Interdata 8/32. Since its development in 1971, it has become quite widely used, although publicity efforts on its behalf have been minimal, and the license under which it is made available outside the Bell System explicitly excludes maintenance. Currently, there are more than 300 Bell System installations, and an even larger number in universities, secondary schools, and commercial and government institutions. It is useful on a rather broad range of configurations, ranging from a large PDP-11/70 supporting 48 users to a single-user LSI-11 system.

UNIX* is a general-purpose, interactive, time-sharing operating system
for the DEC PDP-11 and Interdata 8/32 computers. Since it became
operational in 1971, it has become quite widely used. This paper
discusses the strong and weak points of the UNIX system and some areas
where we have expended no effort. The following areas are touched on:

  • (i) The structure of files: a uniform, randomly-addressable sequence of bytes. The irrelevance of the notion of "record. " The efficiency of the addressing of files.
  • (ii) The structure of file system devices: directories and files.
  • (iii) I/O devices integrated into the file system.
  • (iv) The user interface: fundamentals of the shell, I/O redirection, and pipes.
  • (v) The environment of processes: system calls, signals, and the address space.
  • (vi) Reliability: crashes, losses of files.
  • (vii) Security: protection of data from corruption and inspection; protection of the system from stoppages,
  • (viii) Use of a high-level language— the benefits and the costs.
  • (ix) What UNIX does not do: "real-time, " interprocess communication, asynchronous I/O.
  • (x) Recommendations to system designers.

Found a nice page on DMR’s site with links to several papers on this:
C and Unix Portability Papers

Although we didn’t know it at the time we started, Richard Miller, then at University of Wollongong, NSW, Australia, was doing essentially the same thing, amazingly enough on nearly the same machine: the Interdata 7/32 for him, the 8/32 for us.

See UNIX: a portable operating system? by Richard Miller, 1978.

From A UNIX System Implementation for System/370:

Most of the design for implementing the UNIX system for System/370 was done in 1979, and coding was completed in 1980. The first production system, an IBM 3033AP, was installed at the Bell Laboratories facility at Indian Hill in early 1981

Also of interest, from a 1993 amicus brief: “UNIX 32V was released by AT&T in 1978 … for a now-obsolete computer (Digital Equipment Company’s VAX).”

Also noting that Microsoft acquired a license in 1978 to produce a Unix port, which gave rise to Xenix in 1980, which they licensed to OEMs to give rise to, for example, Siemens’ SINIX for the 80186 which they later ported to the ns32k.

The company stated [see BYTE] that it intended to port the operating system to the Zilog Z8000 series, Digital LSI-11, Intel 8086 and 80286, Motorola 68000.
The first port was for the Z8001 16-bit processor: the first customer ship was January 1981 for CDC followed in March 1981 by Paradyne Corporation’s Z8001 product. The first 8086 port was for the Altos Computer Systems’ non-PC-compatible 8600-series computers (first customer ship date Q1 1982)

Also the ns32k, see Moving Unix to New Machines in October 1983 BYTE (“Some portability considerations and a case history of Unix for the NS16032”):

The kernel was the next big step. We adapted a VAX version of Unix to run with the National hardware.


Thanks, Ed, great stuff. I’d like to add this one: Operating System Support for Database Management.

For some of us, this short but deeply insightful paper was the “Bible” of progress in the mid- to late-1980s. Many *nix features, like O_SYNC, direct I/O, MMIO, OS-supported threads, and others became supported features of proprietary *nix systems during the 80s. These changes happened partly as a result of this paper. Today these features are found in Linux, in part because some of the same proprietary *nix implementors moved on to become important Linux contributors.