What follows is a very short document with some information about the origins and history of UNIX. It is not meant to be detailed or comprehensive in nature, but simply a nice summary that can be used to better understand the UNIX philosophy and perhaps continue studying the topic with some further research.

{Latest update: 13 November 2005}

A short history of UNIX

As early as 1957, Bell Labs found that they needed an operating system for their in house computer center which was running many short batch jobs, so they created BESYS to sequence the jobs and control the system resources. By 1964, the Labs was adoptiong a new generation of computers and they decided to join forces with General Electric and MIT to create a new general purpose, multi-user, time-sharing operating system that they decided to call Multics. However, in 1969 they decided to pull out from the project due to differences with the other members. At that point, the Labs purchased a new computer and used GECOS, an operating system that was not nearly as advanced as Multics and created the need among the research staff to create something different and more powerful.

Ken Thompson, Dennis Ritchie and others began to work on UNIX using an old PDP-7 computer. The name "UNIX" was intended as a pun on "Multics", and it was originally written "Unics" (UNiplexed Information and Computing System). The name also intended to reflect that the new system was simpler than Multics.

For the first ten years (1969-79), development of UNIX was confined to AT&T's Bell Labs. The researches developed a set of guidelines that inspired their work and would forever become a part of "the UNIX philosophy":

  • Make each program do one thing well.
  • Expect the output of every program to become the input to another, as yet unknown, program.
  • Design and build software to be tried early, ideally within weeks.
  • Write a kernel that is as small as possible, and makes as few decisions as possible.

The C programming language was developed nearly in parallel with UNIX, between 1969 and 1973, as a way to allow for a better portability of the new system.

The new OS quickly spread within AT&T and was used for several operations in their telephone network. The appearance of the mini-computer helped it spread too. By 1973, an internal group, called the Unix System Group (USG), was set up to provide internal support.

UNIX also spread outside AT&T and Bell Labs, especially as a consequence of the practice to make the software available to academic institutions at a very small charge. Additionally, UNIX was very attractive to the emerging Computer Science departments for several reasons: it was the only powerful operating system that could run on the hardware they could afford at the time (the PDP-11, mainly), it was inexpensive, the source code was provided and it was written in a language that was far easier to understand than assembly.

In 1976, John Lions, a faculty member in the Department of Computer Science at the University of New South Wales (Australia), decided to prepare a booklet containing the full source code of UNIX V6 together with his own explanatory notes to be used in class. Photocopied versions of the document spread like wildfire among universities all over the world. At this point, the academic community had already started to contribute significant code to the UNIX operating system, adding essential functionality such as virtual memory. The Berkeley Software Distribution (BSD) branch would later develop from here. The development of features such as UUCP (and later Usenet news and Arpanet) would make it easier and easier for people outside the original group to add features and work on the UNIX source code. As a consequence, UNIX was imbued with some of its most basic and characteristic principles:

  • Open standards.
  • Community spirit.
  • Network-centered.

Milestones of the original UNIX

The original versions of UNIX were developed by the Computer Research Group (CRSG) of Bell Labs. Another group, the Unix System Group (USG), was also responsible for internal support. Yet another group at Bell Labs, the Programmer's Workbench (PWB), was also involved in development and wrote tools and features such as sccs, named pipes and some other ideas. Both groups were merged into the Unix System Development Lab in 1983.

The following is a list of the most significant versions of this original UNIX, and does not include any of the forks that would first see the light during the 1980s.

  • V1 (1971): first version of UNIX, still written in assembly language. It was used mainly as a text processing tool for preparation of patents. This version already included a file system, fork(), roff and ed. The pipe() system call would be introduced later, in V2.
  • V4 (1973): rewritten in C, therefore improving its portability to other systems.
  • V6 (1975): first version of UNIX widely available outside of Bell Labs, especially in the academic world. It included Kernighan and Ritchie's C, UUCP and the Bourne shell, among other things.
Main UNIX flavors

Linux: the UNIX clone