\chapter{What's \unix, anyway?}\label{unixinfo}

\begin{quote}
Ken Thompson\index{Thompson, Ken} has an automobile which he helped
design.  Unlike most automobiles, it has neither speedometer, nor gas
gage, nor any of the numerous idiot lights which plague the modern
driver.  Rather, if the driver makes any mistake, a giant ``?'' lights
up in the center of the dashboard.  ``The experienced driver,'' he
says, ``will usually know what's wrong.''
\end{quote}

\section{Unix History}
In 1965, Bell Telephone Laboratories (Bell Labs, a division of
AT\&T\index{AT\&T})\glossary{Bell Labs} was working with General
Electric\index{General Electric} and Project MAC of
MIT\index{Massachusetts Institute of Technology} to write an operating
system called Multics.\index{Multics} To make a long story slightly
shorter, Bell Labs decided the project wasn't going anywhere and broke
out of the group.  This, however, left Bell Labs without a good
operating system.

Ken Thompson\index{Thompson, Ken} and Dennis Ritchie\index{Ritchie, Dennis} 
decided to sketch out an operating system that would meet Bell
Labs' needs.  When Thompson needed a development environment (1970) to
run on a PDP-7, he implemented their ideas.  As a pun on Multics,
Brian Kernighan\index{Kernighan, Brian} gave the system the name
\uslunix.

Later, Dennis Ritchie\index{Ritchie, Dennis} invented the ``C''
programming language. In 1973, \uslunix\ was rewritten in C, which
would have a major impact later on. In 1977, \uslunix\ was moved to a
new machine, away from the PDP machines it had run on previously.
This was aided by the fact \uslunix\ was written in C.

\unix\ was slow to catch on outside of academic institutions but soon
was popular with businesses as well. The \unix\ of today is different
from the Unix of 1970.  It has two major versions: System V, from Unix
System Laboratories (USL)\index{Unix System Laboratories}, a
subsiderary of Novell\footnote{It was recently sold to Novell.
Previously, USL was owned by AT\&T.\index{AT\&T}}, and BSD, Berkeley
Software Distribution.
\index{Novell}\index{BSD}\index{University of California, Berkeley}
The USL version is now up to its forth release, or
SVR4\footnote{System five, revision four.}, while BSD's latest version
is 4.4.  However, there are many different versions of \unix\ besides
these two. Most versions of \unix\ are developed by software companies
and derive from one of the two groupings.  Recently, the versions of
\unix\ that are actually used incorporate features from both of them.

USL is a company that was `spun off' from AT\&T\index{AT\&T}, and has
taken over the maintenance of \uslunix\ since it stopped being a research
item.  \unix\ now is much more commericial than it once was, and the
licenses\glossary{source code} cost much more.

Please note the difference between \unix\ and \uslunix.  When I say
``\unix'' I am talking about \unix\ versions in generally, whether or
not USL is involved in them.  ``\uslunix'' is the current version of
\unix\ from USL\@.  The distinction is because \uslunix\ is a
trademark of X/Open. (Officially, anybody can create a \uslunix\ 
operating system, as long as it passes tests from X/Open. Since the
tests haven't been created yet and are likely to cost money, \linux\ 
is currently not a ``real'' \uslunix.) \index{X/Open}

Current versions of \uslunix\ for Intel\index{Intel} PCs cost between
\$500 and \$2000.

\section{\linux\ History}

\linux\ was written by Linus Torvalds\index{Torvalds, Linus}, and 
has been improved by countless numbers of people around the world.  It
is a clone, written entirely from scratch, of the Unix operating
system.  Neither USL, nor the University of California, Berkeley, was
\index{Unix System Laboratories}\index{University of California, Berkeley}
involved in writing \linux.  One of the more interesting facts about
\linux\ is that development simulataneously occurs around the world.
People from Austrialia to Finland contributed to \linux, and hopefully
will continue to contribute.

\linux\ began with a project to explore the 386 chip. One of Linus's
earlier projects was a program that would switch between printing {\tt
AAAA} and {\tt BBBB}. This later evolved to \linux.

\linux\ has been copyrighted under the terms of the GNU General Public
License (GPL)\index{General Public License}.  This is a license
written by the Free Software Foundation (FSF)\index{Free Software Foundation} 
that is designed to prevent people from restricting the
distribution of software.  In brief it says that although you can
charge as much as you'd like for giving a copy away, you can't prevent
the person you sold it to from giving it away for free. It also means
that the source code\footnote{The instructions that people write, as
distinct from zeros and ones.} must also be available.  This is useful
for programmers.  The license also says that anyone who modifies the
program must also make his version freely redistributable.

\linux\ supports most of the popular \unix\ software, including The X
Window System\index{X Window System}.  This is a rather large program
from MIT\index{Massachusetts Institute of Technology} allowing
computers to create graphical windows, and is used on many different
\unix\ platforms.  \linux\ is mostly System V\index{System V}, mostly
BSD\index{BSD} compatible and mostly POSIX-1\index{POSIX} (a document
trying to standardize operating systems) compliant.  \linux\ probably
complies with much of POSIX-2, another document from the
IEEE\index{IEEE} to standardize operating systems. It's a mix of all
three standards: BSD, System V, and POSIX.

Many of the utilities included with \linux\ distributions are from the
Free Software Foundation\index{Free Software Foundation} and are part
of GNU Project\index{GNU Project}.  The GNU Project is an effort to
write a portable, advanced operating system that will look a lot like
\unix.  ``Portable'' means that it will run on a variety of machines,
not just Intel\index{Intel} PCs, Macintoshes, or whatever.  \linux\
is not easily ported (moved to another computer architechure) because
it was written only with the 80386 in mind.

Of course, Torvalds isn't the only big name in \linux's development.
The following people also deserve to be recognized:

\begin{description}
\item [H.~J.~Lu]\index{Lu, H.~J.} has maintained {\tt gcc} and the
\linux\ C Library, two items needed for programming.
% okay, I need more names. Suggestions? *****
% Matt Welsh, Donald Becker, The ExtFs guy..
\end{description}

Of course, I must have missed people in the above list.  Sincere
thanks and apologies go out to anyone not mentioned here---there must
be dozens if not hundreds of you!

\subsection{\linux\ Now}

\linux\ development has split into two different branches. The first,
signified with version numbers starting with ``1.0'' is supposed to be
a more stable, dependable version of \linux. The second, signified
with versions numbered ``1.1'' is a more daring, quicker developing
and therefore (unfortunately) more buggy version of \linux.

The items changing the fastest in \linux\ right now are
TCP/IP\index{TCP/IP} support\footnote{That's a form of networking.
More on that later.\glossary{networking}} and bug fixes\glossary{bug}.
\linux\ is a large system and unfortunately contains bugs which are
found and then fixed.  Although some people still experience bugs
regularly, it is normally because of non-standard or faulty hardware;
bugs that effect everyone are few and far between.

Of course, those are just the kernel bugs.  Bugs can be present in
almost every facet of the system, and inexperienced users have trouble
seperating different programs from each other. For instance, a problem
might arise that all the characters are some type of gibberish---is it
a bug or a ``feature''?  Surprisingly, this is a feature---the
gibberish is caused by certain control sequences that somehow
appeared\footnote{However, because you have all the source code, you
can easily disable this particular escape sequence and recompile the
kernel.}.  Hopefully, this book will help you to tell the different
situations apart.

\subsection{Trivial \linux\ Matters}

% I'd like some trivial, and funny, questions and answers to put in
% here.  This isn't meant to be a serious section. Also, this may in
% the future be taken out of question/answer format. I personally
% think that's appropriate for a FAQ, but not for formal
% documentation. Perhaps as places become obvious, these paragraphs
% will move.

Before we embark on our long voyage, let's get the ultra-important out
of the way.

{\bf Question:} Just how do you pronounce \linux?

{\bf Answer:} According to Linus\index{Torvalds, Linus}, it should be
pronounced with a short {\em ih\/} sound, like prInt, mInImal, etc.
\linux\ should rhyme with Minix, another Unix clone.  It should {\em
not\/} be pronounced like (American pronounciation of) the
``Peanuts''\index{Peanuts} character, Linus, but rather {\em
LIH-nucks}. And the {\em u} is sharp as in rule, not soft as in ducks.

\subsection{Commercial Software in \linux}

For better or for worse, there is now commercial software available
for \linux.  Although it isn't a fancy word processing application,
Motif\index{Motif} is a package that must be payed for, and the source
isn't given out.  Motif is a user interface for The X Window
System\index{X Window System} that vaguely resembles Microsoft
Windows.\index{Microsoft Windows}

For any readers interested in the legalities of \linux, this is
allowed by the \linux\ license.  While the GNU General Public License
\index{General Public License}\index{Library General Public License}
(reproduced in Appendix~\ref{GNU-GPL}) covers the \linux\ kernel, the
GNU Library General Public License (reproduced in
Appendix~\ref{GNU-LGPL}) covers most of the computer code applications
depend on.
\glossary{GPL}\glossary{GNU General Public License}
\glossary{LGPL}\glossary{GNU Library General Public License}

Please note that those two documents are copyright notices, and not
licenses to use. They do {\em not\/} regulate how you may use the
software, merely under what circumstances you can copy it and any
derivative works. Also, copyright notices are enforced by lawsuits by
the copyright holders, either the Free Software Foundation or Linus
Torvalds. In general, this means you can't go wrong if you obey the
spirit of what they're asking---they probably won't sue you and all
will be well. (Unless the rights get sold.) It's also a good idea not
to think up schemes to get around these two copyrights---it's almost
definitely possible, but merely causes grief to all parties involved.

% Hmm. I'm not so sure it is possible. A great number of people have
% proposed their smart schemes on gnu.misc.discuss, but they have all
% been picked apart by RSM or his companions-in-arms. -M

% Local Variables: 
% mode: latex
% TeX-master: "guide"
% End: 
