Find a domain starting at $0.99

powered by Namecheap

Unix History

History 

The history of UNIX is an oft-told tale and will not be repeated in great detail here. Instead, weprovide a brief summary.UNIX was initially developed at Bell Labs and became operational on a PDP-7 in 1970.Some of the people involved at Bell Labs had also participated in the time-sharing work beingdone at MIT's Project MAC. That project led to the development of first CTSS and then Multics.Although it is common to say that the original UNIX was a scaled-down version of Multics, the developers of UNIX actually claimed to be more influenced by CTSS [RITC78]. Nevertheless,UNIX incorporated many ideas from Multics.Work on UNIX at Bell Labs, and later elsewhere, produced a series of versions of UNIX.The first notable milestone was porting the UNIX system from the PDP-7 to the PDP-11. 

This was the first hint that UNIX would be an operating system for all computers. The next important milestone was the rewriting of UNIX in the programming language C. This was an unheard-ofstrategy at the time. It was generally felt that something as complex as an operating system,which must deal with time-critical events, had to be written exclusively in assembly language.The C implementation demonstrated the advantages of using a high-level language for most ifnot all of the system code. Today, virtually all UNIX implementations are written in C.These early versions of UNIX were popular within Bell Labs. In 1974, the UNIX systemwas described in a technical journal for the first time [RITC74]. 

This spurred great interest in thesystem. Licenses for UNIX were provided to commercial institutions as well as universities. Thefirst widely available version outside Bell Labs was Version 6, in 1976. The follow-on Version7, released in 1978, is the ancestor of most modern UNIX systems. The most important of thenon-AT&T systems to be developed was done at the University of California at Berkeley, calledUNIX BSD (Berkeley Software Distribution), running first on PDP and then VAX machines.AT&T continued to develop and refine the system. By 1982, Bell Labs had combined several
-4-AT&T variants of UNIX into a single system, marketed commercially as UNIX System III. Anumber of features was later added to the operating system to produce UNIX System V. 

Description

  Figure 2.14 provides a general description of the UNIX architecture. The underlying hardware issurrounded by the operating system software. The operating system is often called the systemkernel, or simply the kernel, to emphasize its isolation from the user and applications. Thisportion of UNIX is what we will be concerned with in our use of UNIX as an example in thisbook. However, UNIX comes equipped with a number of user services and interfaces that areconsidered part of the system. These can be grouped into the shell, other interface software, andthe components of the C compiler (compiler, assembler, loader). The layer outside of thisconsists of user applications and the user interface to the C compiler. 

A closer look at the kernel is provided in Figure 2.15. User programs can invoke operatingsystem services either directly or through library programs. The system call interface is theboundary with the user and allows higher-level software to gain access to specific kernelfunctions. At the other end, the operating system contains primitive routines that interact directlywith the hardware. Between these two interfaces, the system is divided into two main parts, oneconcerned with process control and the other concerned with file management and I/O. Theprocess control subsystem is responsible for memory management, the scheduling anddispatching of processes, and the synchronization and interprocess communication of processes.The file system exchanges data between memory and external devices either as a stream ofcharacters or in blocks. To achieve this, a variety of device drivers are used. For block-orientedtransfers, a disk cache approach is used: a system buffer in main memory is interposed betweenthe user address space and the external device. 

The description in this subsection has dealt with what might be termed traditional UNIXsystems; [VAHA96] uses this term to refer to System V Release 3 (SVR3), 4.3BSD, and earlier versions. The following general statements may be made about a traditional UNIX system. It isHardware Kernel System Call Interface UNIX Commands and Libraries User-written Applications Figure2.14 General UNIX Architecture



designed to run on a single processor and lacks the ability to protect its data structures fromconcurrent access by multiple processors. Its kernel is not very versatile, supporting a single typeof file system, process scheduling policy, and executable file format. The traditional UNIXkernel is not designed to be extensible and has few facilities for code reuse. The result is that, asnew features were added to the various UNIX versions, much new code had to be added,yielding a bloated and unmodular kernel.

 2.7 MODERN UNIX SYSTEMS

 As UNIX evolved, the number of different implementations proliferated, each providing some useful features. There was a need to produce a new implementation that unified many of the important innovations, added other modern operating system design features, and produced amore modular architecture. Typical of the modern UNIX kernel is the architecture depicted inFigure 2.16. There is a small core of facilities, written in a modular fashion, that provide functions and services needed by a number of operating system processes. Each of the outercircles represents functions and an interface that may be implemented in a variety of ways.We now turn to some examples of modern UNIX systems.

Subscribe to receive free email updates:

0 Response to "Unix History"