Unix: An Oral History

Introduction

[Still to come]

Multics

The Beginnings

Finding a Machine

Building Unix

Once the group had a machine of its own, its members began to articulate both the system and the style of computing they had envisioned from their experience with Multics. Ostensibly in support of the development of the text processing system for which the machine had been purchased, they began to forge a collection of software tools that would come to characterize the Unix approach to computing. Designed to foster and facilitate interactive programming, the tools formed the basis of a set of "Workbenches" that turned Unix into a production environment for Bell Labs at large. In the process, Unix itself became as much a toolbox as an operating system. Central to that toolbox was pipes, a system process that allowed routines to be linked in sequence, the output of one providing the input for its successor. According to both McIlroy and Kernighan, pipes created the concept of tools. So the story of software tools must begin with the creation of pipes.

As a metaphor, pipes emphasized the notion of tools as filters or, more technically put, transducers, which transform a sequence of input symbols into a sequence of output symbols. That notion fit well with the line of research being pursued by the theoreticians in Computing Research, most notably Al Aho. As a result, many of the tools reflected in their conceptual structure the application of recent results in the theory of automata and formal languages and in the theory of algorithms. This tie to theory became another characteristic of the Unix approach to computing, or the Unix ethos.

Unix was intended to recreate the communal computing environment that had so impressed the Bell Labs participants in the Multics project. During the years in which the toolbox took shape, its creators shared not only a computer system but also a small attic room, and their physical proximity was often as important to their collaboration as was the ability to share files and programs. To understand the economy and efficiency of the Unix programming environment, one must appreciate the tight-knit community that created it.

What emerged from the building of Unix was not only, or even primarily, a text-processing and programming systems that were the vehicles of its dissemination throughout Bell Labs, AT&T, and soon the academic community. In its inspiration and articulation, Unix embodied an ethos of computing, a view of what computers were for and how they should be used, indeed a view of how computers could enable and encourage human community.

The sections to follow will begin, then, with the creation of pipes and the development of some of the basic tools of Unix. After a look at the theory that informed this work, we will take a peek at the attic room and the patterns of collaboration that are embedded in Unix. We will then follow the main lines of its dissemination to the larger world, starting with the text processing system that was its initial justification and moving then to the spread of Unix itself. Finally, we will consider the ethos that accompanied the software and that made Unix more than just another operating system.

Pipes

Tools

Formal Methods

The Attic

Dissemination

Text Processing
Unix

The Unix Ethos