A Brief History of Unix
By Charles Severance
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.
HISTORY OF UNIX AND CAUSES FOR ITS POPULARITY
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.
UNIX APPLICATION PROGRAMMING INTERFACE
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.