In the late 1970's, a division of AT&T
called Unix System Laboratories created the UNIX operating system. It
was sold in commerce as well as widely adopted in academia. The
copyright in the software itself has been repeatedly transfered to
other companies since the mid-1980's. An illustration of how mobile
the software's ownership has been is that SCO does not own the
UNIX trademark - that's the property of some other unrelated
company.
UNIX was commonly (if not always) available
with source code. The availability of the source code under license
has meant that licensees could develop "customized"
versions of UNIX, and those licensee's actions have given rise to a
startling
number of variants.
UNIX was designed as a small core
called the kernel that is tailored to the computing hardware
running the operating system, plus a host of limited functionality
modules or utilities independent of the kernel. The modules and
utilities rely upon kernel services to make use of the underlying
machine. Though each utility does only one or a few things, the
output of one utility can be "piped" to the input of
another utility, forming a chain of inputs, utilities, and outputs to
achieve the desired computing goal.
For instance, if you kept an address book in a text file, and you were going to San Francisco next weekend, you might extract the phone numbers for your friends in that city from the address book with a chain like this one:
% cat contacts.txt | grep "San Fran" | awk '{print $1 " "$2}' | sort -n
Each of the vertical bar symbols represents a "pipe"; UNIX
will interpret the pipe as a request to connect the output of the
leading command as input to the trailing command. In this example,
'cat', 'grep', 'awk', and 'sort' are the commands. So the output of
`cat contacts.txt` goes into the `grep "San Fran"` command,
and the output of that goes into the `awk ...` command, and so
forth. Each command performs a small part of the overall task, but
the sum of their actions flexibility of this approach makes it very
powerful. UNIX's componentized design extends beyond simple command
line utilities. Even the largest applications are generally built as
an loose aggregation of libraries and utilities, tied together with a
graphical user interface or a simple text mode control.
By
contrast, Microsoft Windows is an operating system that has steadily
grown more centralized. Many functions of Windows are part of the
"core" operating system; this fact was a point of
contention in the latest Antitrust suit against the company -
Microsoft asserted that even its web browser was part of the
operating system.
By comparison, for those who remember DOS,
the core of that O.S. was
just six files, and only two of those correspond to a UNIX
kernel.