A Brief History of Unix

1487 Words3 Pages

A Brief History of Unix

This document is designed to give people with no previous UNIX

experience some sense of what UNIX is. This document will cover the

history of UNIX and an introduction to UNIX.


Most discussions of UNIX begin with the history of UNIX without

explaining why the history of UNIX is important to understanding UNIX.

The remainder of this document will describe some strengths and

weaknesses of UNIX and attempt to explain why UNIX is becoming

popular. All of UNIX's strengths and weaknesses can be directly

related to the history of its development, hence a discussion of

history is very useful.

UNIX was originally developed at Bell Laboratories as a private

research project by a small group of people starting in 1969. This

group had experience with a number of different operating systems

research efforts in the 1970's. The goals of the group were to design

an operating system to satisfy the following objectives:

Simple and elegant

Written in a high level language rather than assembly language

Allow re-use of code

Typical vendor operating systems of the time were extremely large and

all written in assembly language. UNIX had a relatively small amount

of code written in assembly language (this is called the kernel) and

the remaining code for the operating system was written in a high

level language called C.

The group worked primarily in the high level language in developing

the operating system. As this development continued, small changes

were necessary in the kernel and the language to allow the operating

system to be completed. Through this evolution the kernel and

associated software were extended until a complete operating system

was written on top of the kernel in the language C.


Many proprietary operating systems have a simplified view of

application behavior. The typical application reads some data from

disk, tape or a terminal and does some processing. Output is produced

onto disk, tape, tape, terminal, or printer. The operating systems

generally provide easy to use well-implemented facilities to support

these types of facilities.

As applications become more sophisticated they need new features such

as network access, multi-tasking, and interprocess communications. In

traditional operating systems, these features are often hard to use,

not well documented, and only callable from assembly language. When a

program makes use of these features, the program may be much more

complex and much more difficult to maintain.

In UNIX because the C language was written to be used to implement an

operating system rather than a traditional "input-processing-output"

application, use of these sophisticated features is quite easily done

from the C language without writing any assembly language.

Open Document