UNIX History

By: Mike Yocom - Revised: 2006-06-06 devin

Introduction

Covers the history of UNIX including pre-UNIX chaos, Multics, BSD, Mach, and NeXT.


Pre-UNIX Chaos

In the years before UNIX, practically every model of computer had its own operating system. Almost always these operating systems would be incompatible with each other, even with operating systems for other models made by the same company. This meant that groups often had to re-enter their old data — by hand — into the new computer when they upgraded.

1965 — Multics

Researchers from MIT, General Electric, and Bell Labs — a division of AT&T — began working together to produce an operating system that would be interactive — instead of feeding in punch cards and seeing which lights would turn on — and that could support multiple, simultaneous users. (Realize that this was in the days when "small" computers were the size of a desk. Operating computers in those days was expensive, most groups could only afford to rent a limited amount of computer resources for a limited amount of time.)

Over the course of the next four years, the researchers would continue to labor away on Multics. By 1969, the researchers from Bell Labs had become frustrated by the direction Multics was going, and withdrew. However, a small group within Bell Labs saw the value in Multics' design goals, and started again.

1970 — UNIX

Throughout 1969 a group of Bell Labs' researchers worked on designing an operating system. Their attempts to lobby within Bell Labs for equipment met with failure because of the similarity to Multics and the cost of equipment for such a small group.

Throughout 1969 a group of Bell Labs' researchers worked on designing an operating system. Their attempts to lobby within Bell Labs for equipment met with failure because of the similarity to Multics and the cost of equipment for such a small group.

A PDP-7

The breakthrough came when Ken Thompson found a little-used PDP-7. This relatively small, inexpensive computer with a video terminal became the first computer to run UNIX. Ken Thompson wrote the initial operating system while his wife was on vacation for a month — allocating a week each to operating system, a command-line shell, a text editor to write programs with, and a PDP-7 assembler to turn the files created with the text editor into machine code. Interestingly, it wouldn't be until 1970 that the name "UNIX", a pun on "Multics", was coined.

In 1970, the UNIX group proposed purchasing a $65 000 PDP-11. In 1971, using the PDP-11, the UNIX group rewrote UNIX in a high-level language, instead of assembly code, so that it could more easily be ported to new hardware. They briefly tried using Fortran before creating their own language based on BCPL, which they called "B", and then extended to produce "C". Then they rewrote UNIX in C. This made it easier to port UNIX to run on new hardware, as all that was needed was a C compiler to turn the UNIX C code into machine code for the specific model.

Because of the need to be portable to different computer models, every UNIX license included source code, so that customers could port UNIX to their individual hardware. One such customer was UC Berkeley, who purchased a UNIX license in 1974.

1978 — Berkeley System Distribution

The BSD Daemon

In 1973, Professor Bob Fabry, of the University of California at Berkeley, attended a presentation of the first UNIX paper at the Symposium of Operating Systems Principles at Purdue University. The Computer Science, Mathematics, and Statistics Departments at UC Berkeley pooled funding to purchase a PDP-11/45 — CS would spend eight hours a day tinkering with UNIX, Math and Stats would spend the other sixteen running DEC's RSTS system.

In 1975, Ken Thompson, of Bell Labs, took a one-year sabbatical to teach at UC Berkeley. While he was there he managed to get two graduate students — Bill Joy and Chuck Haley — interested in UNIX. When he left at the end of his one-year sabbatical they continued modifying and enhancing UNIX. By 1977 they had completed a number of improvements, had made an advanced Pascal compiler, the text editors ex and vi, and termcap, a program to work with computers that different types of user terminals connected to them — which they bundled together and released as 1BSD.

By 1978 3BSD had been released. Using 3BSD's good reputation, Prof. Bob Fabry was able to get an eighteen-month contract with the Defense Advanced Research Projects Agency (DARPA) in 1980 to add features needed to implement UNIX on the various computers being used in DARPA research centers scattered around the country — and, more importantly, allow them to network together via the ARPAnet. As a result of this contract, BSD UNIX was used to implement an early version of TCP/IP, the protocol now used on the Internet — the successor to ARPAnet. 4BSD was released in 1980.

Over the course of the next fifteen years, various incarnations of 4.xBSD, with increased enhancements, were released. By 1995, when the Internet was opened up for all to use, the state of the art was 4.4BSD-Lite, Release 2.

1985 — Mach

Another UNIX variant, Mach was begun as a research project in operating system design at Carnegie-Mellon University. Mach utilizes a microkernel, which differs from monolithic kernels like those used in most UNIX variants — including Linux — in that all the kernel does is provide a virtual memory abstraction, device drivers, and inter-process communication.

The CMU researchers were responsible for developing Mac versions as late as Mach 3. Mach 4 was developed by researchers at the University of Utah. Subsequent versions are produced by the Open Software Foundation.

1985 — NeXT

The NeXT logo. Click for a larger version.

One of the early adopters of Mach was a new computer company called NeXT. NeXT was founded by Steve Jobs, one of the founders of Apple Computer, when he left Apple following a failed attempt to take control of Apple back from John Sculley.

The NeXTSTEP operating system was released in 1988. It used the Mach microkernel, and added elements of 4.3BSD. It incorporated an advanced GUI — arguably the most advanced available at the time. NeXT's engineers even created a new programming language — Objective C — to take advantage of the new GUI. The first web browser was created on a NeXT computer, as was the first definition of the HTML standard. (HTML is the technology that makes web pages.)

NeXTSTEP 2.0 was released in 1990, and added the Interface Builder — which made the process of creating graphical interface elements, previously a difficult process for programmers, easy — real-time spell checking, dynamic loading/unloading of hardware drivers, and full networking — even NetWare and AppleTalk support.

NeXTSTEP 3.x added in internationalization, a 3D Graphics Kit, and a Database Kit.

NeXTSTEP originally only ran on NeXT's unique brand of computers. Because these computers — although very advanced technologically — were expensive, NeXT decided to port NeXTSTEP to other computer platforms in 1993. Eventually NeXTSTEP was ported to x86, HP PA-Risc, and SPARC computers. However, because HP and SPARC computers already had advanced UNIX variants, and Windows 3.1 was already so entrenched on the x86 platform, NeXTSTEP didn't sell well. NeXT replaced NeXTSTEP with OpenStep 4.0 as a programming environment for the last year it existed.

A screenshot of OpenStep. Click for an enlarged version. Mac OS X users may recognize the precursors of the Dock and Column View.

NeXT's technology was saved in 1996 when Apple Computer began looking for a new, fully modern, operating system to replace the aging Mac OS. After considered other, modern operating systems, Apple settled on NeXT.

2000 — Mac OS X

Mac OS X is based very strongly on a PowerPC-port of OpenStep. Through it Mac OS X inherits Mach's robust memory and processor management, and device driver interface, BSD's POSIX — UNIX program protocol — support and networking interface, and NeXT's OpenSTEP development environment — the Cocoa development environment is a descendent of OpenSTEP — and some of NeXT's interface elements. NeXT's interface was based on PostScript, the same technology that makes up the Portable Document Format (PDF) that Mac OS X's Quartz windowing system is based on. The Mac OS X Dock and Column View are both clearly derived from OpenStep.