% Linux Installation and Getting Started    -*- TeX -*-
% differences.tex
% Copyright (c) 1992-1994 by Matt Welsh <mdw@sunsite.unc.edu>
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by the 
% copyright for the entire document, in the file "copyright.tex".

\section{Differences Between Linux and Other Operating Systems}
\label{sec-intro-differences}

It is important to understand the differences between Linux and other
operating systems, such as MS-DOS, OS/2, and other implementations of UNIX
for the personal computer. First of all, it should be made clear that Linux 
will coexist happily with other operating systems on the same machine: that is, you 
can run MS-DOS and OS/2 along with Linux on the same system without problems. 
There are even ways to interact between the various operating systems, as
we'll see. 

\subsection{Why use Linux?}

Why use Linux instead of a well-known, well-tested, and well-documented
commercial operating system? We could give you a thousand reasons. One of
the most important, however, is that Linux is an excellent choice for
personal UNIX computing. If you're a UNIX software developer, why use 
MS-DOS at home? Linux will allow you to develop and test UNIX software
on your PC, including database and X~Windows applications.
If you're a student, chances are that your university
computing systems run UNIX. With Linux, you can run your own UNIX system
and tailor it to your own needs. Installing and running Linux is also an
excellent way to learn UNIX if you don't have access to other UNIX machines.

But let's not lose sight. Linux isn't just for personal UNIX users. It is
robust and complete enough to handle large tasks, as well as distributed 
computing needs. Many businesses---especially small ones---are moving to
Linux in lieu of other UNIX-based workstation environments. 
Universities are finding Linux to be perfect for teaching courses in 
operating systems design. Larger commercial software vendors are starting
to realize the opportunities that a free operating system can provide. 

The following sections should point out the most
important differences between Linux and other operating systems. We hope
that you'll find that Linux can meet your computing needs, or (at least)
enhance your current computing environment. Keep in mind that they best way 
to get a taste for Linux is just to try it out---you 
needn't even install a complete system to get a feel for it. In 
Chapter~\ref{chap-install-num}, we'll show you how.

\subsection{Linux vs. MS-DOS}

\index{MS-DOS|(}
It's not uncommon to run both Linux and MS-DOS on the same system.
Many Linux users rely on MS-DOS for applications such as word processing. 
While Linux provides its own analogues for these applications (for 
example, \TeX), there are various reasons
why a particular user would want to run MS-DOS as well as Linux.
If your entire dissertation is written using WordPerfect
for MS-DOS, you may not be able to easily convert it to \TeX\ or some other
format. There are many commercial applications for MS-DOS which aren't 
available for Linux, and there's no reason why you can't use both. 

As you might know, MS-DOS does not fully utilize the functionality of the 
80386 and 80486 processors. On the other hand, Linux runs
completely in the processor's protected mode, and exploits all of the 
features of the processor. You can directly access all of your 
available memory (and beyond, using virtual RAM). Linux provides a 
complete UNIX interface not available under MS-DOS---developing and
porting UNIX applications under Linux is easily done, while under MS-DOS 
you are limited to a small subset of the UNIX programming functionality.
Because Linux is a true UNIX system, you do not have these limitations.

We could debate the pros and cons of MS-DOS and Linux for pages on end.
However, let it suffice to say that Linux and MS-DOS are completely
different entities. MS-DOS is inexpensive (compared to other commercial
operating systems), and has a strong foothold in the PC computing world.
No other operating system for the PC has reached the
level of popularity of MS-DOS---largely because the cost of these other 
operating systems is unapproachable to most personal computer users. Very 
few PC users can imagine spending \$1000 or more on the operating system 
alone. Linux, however, is free, and you finally have the chance to decide. 

We will allow you to make your own judgments of Linux and MS-DOS based on
your expectations and needs. Linux is not for everybody. If you have always
wanted to run a complete UNIX system at home, without the high cost of 
other UNIX implementations for the PC, Linux may be what you're looking for.

There are tools available to allow you to interact between Linux and MS-DOS. 
For example, it is easy to access MS-DOS files from Linux. There is also an
MS-DOS emulator available, which allows you to run many popular
MS-DOS applications. A Microsoft Windows emulator is currently under
development.

\index{MS-DOS|)}

\subsection{Linux vs. The Other Guys}
A number of other advanced operating systems are on the rise
in the PC world. Specifically, IBM's OS/2 and Microsoft's Windows NT are
becoming very popular as more users move away from MS-DOS. 

\index{OS/2|(}
\index{Windows NT|(}
Both OS/2 and Windows NT are full multitasking operating systems, much like
Linux. Technically, OS/2, Windows NT, and Linux are quite similar: they
support roughly the same features in terms of user interface,
networking, security, and so forth. However, the real difference between Linux 
and The Other Guys is the fact that Linux is a version of UNIX, and hence 
benefits from the contributions of the UNIX community at large. 

What makes UNIX so important? Not only is it the most popular operating 
system for multiuser machines, it is also the foundation for the
majority of the free software world. If you have access to the Internet, 
nearly all of the free software available there is written specifically
for UNIX systems. (The Internet itself is largely UNIX-based.)

There are many implementations of UNIX, from many vendors, and no single
organization is responsible for distribution.
There is a large push in the UNIX community for standardization in the form
of open systems, but no single corporation controls this design. 
Hence, any vendor (or, as it turns out, any hacker) may implement these 
standards in an implementation of UNIX. 

OS/2 and Windows NT, on the other hand, are proprietary systems. The
interface and design are controlled by a single corporation,
and only that corporation may implement that design. (Don't expect to see
a free version of OS/2 anytime in the near future.) In one sense, this
kind of organization is beneficial: it sets a strict standard for the
programming and user interface unlike that found even in the open systems
community.  OS/2 is OS/2 wherever you go---the same holds for Windows NT. 

However, the UNIX interface is constantly developing and changing. Several 
organizations are attempting to standardize the programming model,
but the task is very difficult. Linux, in particular, is mostly compliant with 
the POSIX.1 standard for the UNIX programming interface. As time goes on, 
it is expected that the system will adhere to other such standards, but 
standardization is not the primary issue in the Linux development community. 

\index{OS/2|)}
\index{Windows NT|)}

\subsection{Other implementations of UNIX}
There are several other implementations of UNIX for the 80386 and 80486.
The 80386 architecture lends itself to the UNIX design, and a number of 
vendors have taken advantage of this.

\index{UNIX!commercial|(}
\index{UNIX!for the PC|(}
Feature-wise, other implementations of UNIX for the PC are quite similar to
Linux. You will see that almost all commercial versions of UNIX support
roughly the same software, programming environment, and networking features. 
However, there are some strong differences between Linux and commercial 
versions of UNIX.

First of all, Linux supports a different range of hardware from
commercial implementations. In general, Linux supports the most 
well-known hardware devices, but support is still
limited to that hardware which developers actually have access to.
However, commercial UNIX vendors generally have a wider support base, and
tend to support more hardware, although Linux is not far behind.
We'll cover the hardware requirements for Linux in 
Section~\ref{sec-intro-hardware}.

Secondly, commercial implementations of UNIX usually come bundled with a
complete set of documentation as well as user support from the vendor. In
contrast, most of the documentation for Linux is limited to documents
available on the Internet---and books such as this one. In 
Section~\ref{sec-intro-sources} we'll list sources of Linux 
documentation and other information.

\index{Linux!stability}
\index{stability}
As far as stability and robustness are concerned, many users have 
reported that Linux is at least as stable as commercial UNIX systems. 
Linux is still under development, and certain features (such TCP/IP
networking) are less stable but improve as time goes by.

\index{money}
\index{Linux!and cost}
The most important factor to consider for many users is price. The Linux 
software is free, if you have access to the Internet (or another computer 
network) and can download it. If you do not have access to such a 
network, you may need to purchase it via mail order on diskette, tape,
or CD-ROM (see Appendix~\ref{app-vendor-num}). 
\index{Linux!copying}
\index{copying Linux}
Of course, you may copy Linux from a 
friend who may already have the software, or share the cost of purchasing it 
with someone else. If you are planning to install Linux on a large number of 
machines, you need only purchase a single copy of the software---Linux is
not distributed on a ``single machine'' license. 

The value of commercial UNIX implementations should not be demeaned:
along with the price of the software itself, one usually pays for
documentation, support, and assurance of quality. These are very important
factors for large institutions, but personal computer users may not require
these benefits. In any case, 
many businesses and universities are finding that running Linux on a 
lab of inexpensive personal computers is preferrable to running a commercial 
version of UNIX in a lab of workstations. Linux can provide the functionality 
of a workstation on PC hardware at a fraction of the cost. 

As a ``real-world'' example of Linux's use within the computing community,
Linux systems have travelled the high seas of the North Pacific, managing
telecommunications and data analysis for an oceanographic research vessel.
Linux systems are being used at research stations in Antarctica. As a more
mundane example, perhaps, several hospitals are using Linux to maintain 
patient records. It is proving to be as reliable and useful as other 
implementations of UNIX.

\index{UNIX!free implementations}
\index{UNIX!for the PC}
\index{386BSD}
\index{NetBSD}
There are other free or inexpensive implementations of UNIX for
the 386 and 486. One of the most well-known is 386BSD, an implementation 
and port of BSD UNIX for the 386. 386BSD is comparable to Linux in many 
ways, but which one is ``better'' depends on your own personal needs and 
expectations. The only strong distinction that we can make is that Linux is 
developed openly (where any volunteer can aid in the development process), 
while 386BSD is developed within a closed team of programmers who 
maintain the system. Because of this, serious philosophical and design
differences exist between the two projects. The goals of the two projects
are entirely different: the goal of Linux is to develop a complete UNIX
system from scratch (and have a lot of fun in the process), and the goal 
of 386BSD is in part to modify the existing BSD code for use on the 386. 

NetBSD is another port of the BSD NET/2 distribution to a number of
machines, including the 386. NetBSD has a slightly more open development
structure, and is  comparable to 386BSD in many respects.

\index{HURD}
Another project of note is HURD, an effort by the Free Software
Foundation to develop and distribute a free version of UNIX for many
platforms. Contact the Free Software Foundation (the address is given in
Appendix~\ref{app-gpl-num}) for more information about this project. 
At the time of this writing, HURD is still in early stages of development. 

\index{Coherent}
\index{Minix}
Other inexpensive versions of UNIX exist as well, such as Coherent (available
for about \$99) and Minix (an academic but useful UNIX clone upon which 
early development of Linux was based). Some of these implementations are of 
mostly academic interest, while others are full-fledged systems for real
productivity. Needless to say, however, many personal UNIX users are moving to 
Linux.

\index{UNIX!commercial|)}
\index{UNIX!for the PC|)}
