History Question

Sean picasso@madflower.com
Fri, 04 Aug 2000 01:01:11 -0400


This is a little old but we are taling about history..

OCR'd(im making no apologies for errors in the scanning) from THE UNIX OPERATING
SYSTEM by Kaare Christian and Susan Richter (third version published by Wiley)


The History of the UNIX System

The UNIX system is one of the major advances in the progression of computers from
the esoteric realm of high technology into the mainstream of people's daily
activities. It has demonstrated that a powerful operating system can be largely
machine independent, and it has shown that powerful software tools can be used
effectively by people in the course of using a computer to solve problems.

        The UNIX system provides essentially the same services as those provided
by all operating systems: it allows you to run programs, it provides a convenient
and consistent interface to the wide variety of peripheral devices (printers,
tapes, disks, terminals, etc.) that are connected to most computers, and it
provides a file system for information management. The UNIX system's uniqueness
is largely due to the way it evolved. We can best understand the system's growing
popularity by adopting a historical perspective.

Modest Beginnings

Ironically, the UNIX system emerged from the attic of one of the world's
strongest and most powerful corporate monoliths: Bell Laboratories, the research
lab of AT&T. Most operating systems have been developed by computer manufacturers
in order to sell computers. AT&T was not in the business of selling computers
during the first decade of UNIX development, and the UNIX system was not
originally envisioned as a commercial product. The UNIX system has only become a
commercial venture in response to the demand that has developed.

        In the late 1960s Bell Laboratories participated in the development of an
operating system called Multics. Multics is a multiuser interactive system
using a GE mainframe computer. Bell Labs withdrew from the Multics project in
1969, but Multics had a major influence on the UNIX system. In fact, the name
UNIX is a play on the word Multics. One of the most striking differences between
the UNIX system and Multics is complexity-the UNIX operating system is relatively
simple while Multics is extremely complex.

        At about the same time as Bell's withdrawal from Multics, the "granddaddy
of the UNIX system," Ken Thompson, began tinkering on a reject Digital Equipment
Corporation PDP-7 minicomputer. Ostensibly, Thompson sought to create an
operating system that could support the coordinated efforts of a team of
programmers in a programming research environment. In retrospect this objective
has been successfully accomplished. Also, in order to appease management,
Thompson proposed that further UNIX system development be supported by Bell Labs
in order to provide a document preparation tool for the Bell Labs patent
organization. An early version of the UNIX system using a PDP-11/20 was actually
delivered to the Bell Laboratories patent organization in 1971.

        From the very beginning two seemingly incompatible disciplines,
programming and document preparation, have been the cornerstones of the UNIX
system. In practice the UNIX system has demonstrated that text management is
central to many disciplines, including programming. While there are applications
that require operating systems other than the UNIX system, the focus on text
manipulation has served to make it an extremely general purpose operating system.
Text is an accepted medium for communication, a key feature for a general purpose
interactive operating system. And now that graphics have become increasingly
important to many document preparation and other personal productivity
applications, the UNIX system has proven its ability to expand into that area
with graphics workstations combined with software such as the X Window System.

        Ken Thompson's original efforts culminated in the creation of an
operating system, a PDP-7 assembler, and several assembly-language utility
programs. In 1973 Dennis Ritchie rewrote the UNIX system in the C programming
language. C is a general purpose high-level programming language that was
developed by Ritchie. It has proven to be adaptable to many different types of
computer architecture. If the UNIX system had not been rewritten in a high-level
language, it would have been chained to the machine (the outdated PDP-7) upon
which it was developed. Once the original assemblylanguage programs were
rewritten in C, it was suddenly possible to move the entire UNIX system from one
environment to another with a minimum of difficulty.

        Operating systems have traditionally been tied to one computer or family
of computers because they were written in assembly language. Although the UNIX
system was not originally intended to be a portable operating system, once it was
coded in C, everything was in place to move it to other computer systems. The
first move to a different type of computer was accomplished by Ritchie and
Stephen Johnson in 1976 when they transported the UNIX system to the Interdata
8/32. Since then, the UNIX system has been ported,
which means changed as necessary to work on a different type of computer, to
virtually every popular computer architecture.

1.2 The Seventies

As Thompson gained acceptance from his colleagues and management during the early
1970s, the UNIX system began to be used internally throughout the Bell system. As
word of the operating system spread, it generated interest at numerous
universities. In 1975 Western Electric started licensing the UNIX system. The fee
was nominal for academic institutions, encouraging many of them to use and
further develop the UNIX system.

        Even though the UNIX system was looked upon favorably by the academic
high-technology research communities, it was initially met with skepticism by the
business community. The UNIX system gained a reputation as a user-hostile,
business-hostile system. Its strong adherents in the academic communities had
little success in introducing it into mainstream businesses, although a few
high-tech industries-aerosp ace, oil and gas exploration, financial
services-recognized that UNIX gave them a competitive technological advantage.

1.3 The Eighties

During the eighties UNIX became accepted as a workhorse for high-tech
applications, especially engineering and computer-aided design. The UNIX system
gradually attained flexible and powerful networking capabilities, workstations
became commonplace, and dumb terminals headed for the scrap heap. The
mid-eighties introduction of workstation technology, pioneered by Sun, Apollo,
Hewlett Packard (HP), and others, led to a glut of software windowing systems.
But by the end of the decade only the X Window System remained on its feet.

        The X Window System, like UNIX itself, was first husbanded in academia,
and its success was largely due to its availability in source code form and its
easy licensing. The X Window System is now accepted as the standard windowing
system, also known as a graphical user interface (GUI), for computers running
UNIX. The X Window System is extensible, it operates easily over a network, and
its appearance and operation can be customized. The X Window System gives the
UNIX system ease of use that matches the Apple Macintosh and the PC's Windows
environment without forsaking the UNIX system's legendary prowess.

        The main event during the eighties was the UNIX system's continuing
internal struggle to define itself. AT&T is a formidable telephone company, but
it has never been able to fully shape the future of UNIX. When AT&T was strong,
other companies with an interest in UNIX, such as IBM, Sun, NCR, Apollo, HP, the
Santa Cruz Operation (SCO), Microsoft, and others, complained bitterly that AT&T
was competing unfairly. When AT&T fal
tered, these other companies developed competing versions and alternative
technologies, further muddying the already murky waters.

        For much of the decade there were two main factions: AT&T, which
eventually settled on a strategy dubbed System V, and Berkeley, which produced
the BSD (Berkeley Software Distribution) version of UNIX. Somewhat less
contentious but extremely important because of its high sales volume was the
Santa Cruz Operation. SCO first produced a UNIX version called Xenix that ran on
the IBM PC architecture, but SCO switched to System V toward the end of the
decade. During the eighties BSD UNIX's cause was gradually taken over by Sun
Microsystems. Thus by the end of the decade the two main camps were AT&T and Sun.

        Sun Microsystem's first innovation was the workstation. They created an
industry around the idea of a personal workstation, equipped with a graphics
display, a pointer, and networking, running the UNIX system. Sun's original
workstations were based on CISC (complex instruction set computing) processors.
CISC processor chips, which include the Intel 80x86 series of chips and the
Motorola MC680xO series of chips, are modeled after mainframe computers but made
at a lower cost that enables manufacturers to build computers for individuals.

        Sun's next innovation was use of a new CPU chip architecture called RISC
(reduced instruction set computing). RISC tries to make CPU chips faster by
making them simpler. Sun's own RISC implementation is called SPARC, but there are
many competing RISC implementations, including IBM's PowerPC, and Digital
Equipment'S Alpha. In the late eighties the fastest workstations were all based
on RISC chips, but the old-style CISC architecture, which is still used in most
desktop PCs, has nearly caught up.

        During the UNIX system's fractious eighties, tens of millions of PCs and
Macintoshes were deployed on desktops around the world. These machines became
ubiquitous tools for personal productivity software, which means word processors,
spreadsheets, drawing packages, and other single-user applications. During the
eighties UNIX remained a technological marvel, with impressive networking and
communications' capabilities, but it never managed to crack the mainstream
business market.


1.4 Into the Nineties

The nineties started in much the same manner as the eighties, with control of the
UNIX system contested by a cacophony of contentious companies. But AT&T
recognized that it had a hardware culture, not a software culture, and it
recognized that UNIX needed room to grow. AT&T's first move was to transfer the
UNIX operation to a new company called Unix Software Labs (USQ. USL was
independent, although it was owned primarily by AT&T.

        In a similarly sensible style, Sun Microsystems modified its Sun CIS 4
system to create Solaris, which is compatible with System V. Sun's move, coupled
with SCO's earlier move to System V, legitimized System V as the
major definition of UNIX. Variants will remain forever, but System V is now the
undeniable center of the UNIX universe.

        In late 1992 USL was purchased by Novell, which owns the lion's share of
the PC networking business. This remarkable development stripped AT&T of its
influence over UNIX, something that few observers had expected. And it gave full
control of UNIX's destiny to a company whose roots, interests, and successes had
all been in the PC marketplace. The results of Novell's stewardship of the UNIX
system haven't yet been felt, but the 1990s promise to be a remarkable period.

    I Another development in 1992 was the announcement at Summer UseNIX, a
meeting of UNIX users, that Berkeley UNIX would conclude its contribution to the
UNIX community with Release 4.4. Several of the people involved in BSD UNIX
systems have formed small companies to support 'and extend the system but in a
much smaller scale than when the project was supported by both Berkeley and ARPA,
the Department of Defense's Advanced Research Projects Agency.

UNIX

    In July of 1974 Ken Thompson and Dennis Ritchie published their classic
paper, "The Unix Time-Sharing System," in the Communications of the ACM
(Association for Computing Machinery). That paper led to widespread interest in
UNIX, especially,_ when people learned that copies of the Version 5 system, as
described in the paper, could be acquired for just $150, unsupported but with
complete source code.

        By 1976 Version 6 of the UNIX system was distributed, both within the
Bell system and to universities throughout the world. Version 6 featured a
primitive shell, the ed text editor, and a set of about one hundred utilities
strikingly similar to those supplied with the latest UNIX systems. The
programming features of the Version 6 shell were rudimentary-it contained a goto
statement for flow of control, variables named A-Z, and simple expression
testing. However, its interactive features were similar in form and function to
those found on today's shells; there was 1/0 redirection, pipelines, and
background processing.

        Version 6 served as a basis for development of several variants of UNIX,
including the MERT real-time UNIX derivative, the PWB (programmers workbench)
systems, and the early work on UNIX at Berkeley. Version 6 also gained the
distinction of being the first UNIX to be copied by a commercial firm when
Whitesmiths Inc. produced its Version 6 work-alike called Idris. Version 6 is
also remembered as the system that was featured in John Lions' revealing book, A
Commentary on the UNIX Operating System. Lions' sometimes-suppressed book was the
first independent discussion of UNIX; other books were not forthcoming until
this, and one or two other books appeared in 1983.

        In 1978 Version 7 UNIX was released by Bell Laboratories. Version 7 UNIX
is clearly recognizable to anyone who is accustomed to the more mod
ern systems. Version 7 is important for many reasons. It featured the first
release of the Bourne shell, the first shell to combine a powerful interpretive
programming language with flexible features for interactive command entry.
Version 7 had an important influence on the PWB systems, and it was the basis for
the UNIX 32V system for Digital Equipment VAX computers. Many of UNIX's important
subsystems attained'their nearly final form in Version 7. Some UNIX veterans have
a nostalgic feeling for Version 7; it was the last of the small, clean UNIX
systems, yet it was certainly a "modern" UNIX system.

        Inside the Bell system, the PWB UNIX system became Release 3.0, then 4.0,
and finally in 1982 it evolved to 5.0. In the early 1980s, as Bell regained its
interest in the UNIX system, they prepared commercial releases of UNIX. The name
was changed from Release 5.0 to System V, a few additional documents were
prepared, and then System V was proclaimed to be a standard. The original version
of System V still contained the ed line editor, although later releases of System
V contain the vi editor adopted from Berkeley.

        During the late seventies and early eighties, when the UNIX system was
nurtured but little at Bell Laboratories, it was being aggressively supported and
improved by gifted graduate students at the University of California at Berkeley.
Starting with the 32V system, Berkeley created 3 BSD and 4 BSD for the VAX series
of computers. Berkeley UNIX enhancements include the C shell, the vi visual
editor, the Franz Lisp programming language, the Pascal programming language,
networking support, improved inter-process communication via sockets and
pseudottys, virtual memory support, and many significant performance
enhancements. This stunning string of technical achievements has made Berkeley
UNIX systems very popular, especially with the most demanding users.

        Toward the end of the eighties, Berkeley reduced its UNIX development
activities, and stewardship of most features known as "Berkeley" features passed
to Sun Microsystems, who produced SunOS 3 and then SunOS 4. Sun's UNIX extended
the Berkeley networking tools with a network file system (NFS) that became an
industry standard. Sun also did early work in windowing software for UNIX
workstations, although it eventually lost those battles to the X consortium, and
its X Window System. In 1993 Sun moved to Solaris, which is essentially System V
Release 4 plus some value-added features carried over from both BSD UNIX and
SunOS UNIX systems.

        While the UNIX system's early roots are on minicomputers, and its middle
age was hosted on powerful workstations, the numbers point to increasing
importance on personal computers. On the Macintosh, Apple's A/UX gives Macintosh
users the benefit of the UNIX system without losing the benefits of the
supportive Macintosh environment.

        On the PC, which means personal computers that are broadly compatible
with the architecture offered originally by the IBM PC, there are many versions
of UNIX. For many years the PC market leader has been the Santa Cruz Operation,
which originally offered Xenix. Currently SCO is actively promoting their version
of System V, which retains compatibility with their older Xenix product line. The
new player is Univel, which is a Novell spinoff,
that is selling a System V implementation for the PC called UnixWare. Univel
promises to be a major supplier, because of Novell's ownership of UNIX System
Laboratories, the prime developer of the UNIX system.

1.6 UNIX Innovations

The UNIX system has pioneered several important ideas, both technical and
philosophical. Let's first look at a few of the technical innovations, many of
which come from the very early history of the UNIX system.

        Perhaps the UNIX system's most important technical innovation is its
portability. Portability, which is closely related to the idea of "open systems,"
decouples the once close relationship between software and hardware. Portability
means that UNIX can run on many different hardware platforms. This enables
applications software that was developed for UNIX to be portable, which promotes
competition and gives users more choices. Portability means that software can
evolve alongside hardware; it makes software longer lived and more economical.

        Another important innovation is the pipe, which is a connection between
the output of one program and the input of a second program. This has led to the
idea that complicated operations can be managed by a set of programs working
together. Solving a complicated problem using a group of cooperating processes
has proven to be convenient for both program developers and program users, and it
is a feature of UNIX that has been copied and extended in other environments.

        Another idea that has pervaded the UNIX system is the notion of a
software tool. A software tool is a program that addresses a single function. It
does one thing well. In addition, a software tool is able to cooperate with other
tools, usually using pipe connections, to perform more complex tasks. This
contrasts with the style of desktop personal productivity software that developed
on both the PC and the Macintosh, which emphasizes large do-itall applications.

        Another trailblazing aspect of the UNIX system is its use of a
commandline user interface that is also a complete programming language. Version
6 of UNIX contained a primitive command-line interface called the shell, but in
Version 7 and beyond the shell has been both a user interface and a sophisticated
programming language. Understanding the shell is a key to getting the most from
the UNIX system, and it is covered extensively in this book.

        Another innovation of the UNIX system is its modularity. The earliest
example was the removal of the user interface from the the UNIX system kernel.
This was innovative at the time but is now standard for all operating systems.
Similarly, the UNIX system evolved to support multiple, installable file systems,
networking became a modular component, and many other subsystems became
configurable options, so that UNIX systems could be delivered with a wide range
of functionality. The ultimate expression of this trend is the Mach kernel, which
provides minimal basic functionality. Mach pro
vides only a rudimentary operating system substrate. Specific operating systems
enhance the substrate by adding file systems, process structures, networking, and
all the other features that we expect from a modern operating system. Mach is now
being used as a basis for UNIX systems and for operating systems other than the
UNIX system, and its ideas are influencing other current operating system
designs.

        The preceding paragraphs detail an impressive set of technical
accomplishments, but they skirt the true importance of the UNIX system. I think
that empowerment is the UNIX system's most important contribution. The UNIX
system started the trend away from the glass house, away from the mainframe
mentality. Ken Thompson was, in the best sense, selfish. He wanted a computer to
meet his needs, an individual's needs. He wasn't interested in corporate goals or
strategies, but rather he was interested in utility, in getting the most use out
of a computer.

        Empowerment is the heart of the UNIX system's early appeal, but
empowerment nearly got lost during the eighties. The next logical step for the
UNIX system, bringing the power of computers to everybody, not just the
technically elite, stalled. Instead the makers of personal computers, primarily
PCs and Macintoshes, learned how to create software that's universally usable.
The UNIX system has come a long way in attaining the same ease of use as PCs and
Macintoshes, but it has lost the first-round fight to occupy the desktop, and it
remains to be seen if it will be a more prominent desktop player in the future.

        The mid-nineties versions of the UNIX system take empowerment to a new
level. They combine easy-to-use graphical interfaces with the UNIX system's
traditional set of powerful utilities. Today the UNIX system lets you use a
graphical calendar for setting up group meetings, a powerful CAD program for
designs, or a modern spreadsheet for financial analysis, and then you can move
into a command-line interface and use the traditional tools for the chores at
which they still excel.