Linux Advocacy: Why Linux?
reasons to use linux > More
An essay by Chris
question, "Why should I use Linux?" or "What
is so great about Linux?" is often asked. This is an attempt to
answer that question. In order to provide perspective on Linux's
competitive position, I have compared it to the dominant Microsoft
Windows product line in several places.
What is Linux?
This is an important initial question. Linux, or "GNU/Linux"
as some prefer, is a Unix-compatible operating system which consists
of the Linux kernel and a comprehensive set of utilities and other
programs, largely from the GNU project of the Free
Software Foundation. The Graphical User Interface is provided
the X Window
and related libraries and utilities.
All of this software is freely available under the GNU
General Public License or other similar licenses, which
the free redistribution of both the source code (human-readable) and
binary (machine-readable) versions of the software. Thus, the
software can be modified, adapted, or improved by any person.
Since the different software components (packages) that comprise a
complete Linux system are maintained by different people and
organizations and are maintained on different schedules, several
companies and organizations provide the service of collecting a
complete set of these packages, testing them together, developing
installation tools, and then making the complete set of packages
available as a "Distribution". There are commercial
distributions (such as the Caldera
Open Linux and Red Hat
Commercial Linux products) and non- commercial distributions (such as
commercial and non-commercial distributions are available free of
charge over the Internet as well as on CD. The main distinction
between "commercial" and "non-commercial" is that
the commercial products are backed by a company that provides
technical support (and they may also provide additional software
which is not freely redistributable), which may be an important
factor in some business settings.
While not officially a Unix
system, Linux is based upon the 28+ year heritage, architecture, and
experience of the Unix operating system. Over the past seven years
has been reviewed and refined by (at least) tens of thousands of
programmers. Most of the GNU and X Window System source code has been
available for longer and has been reviewed even more thoroughly.
The source code for most competing operating systems, such as Windows
95 and Windows NT, is not publicly available and has not been subject
to widespread review. The design of these systems does not enjoy the
historical depth of the Unix system.
Linux is estimated
to have an installed user base of approximately 7.5 million users
and the size of the user base is growing rapidly.
Linux interoperates with other operating systems in three ways:
through file and filesystem compatability, through network
compatability, and through operating system emulation.
Linux readily shares files with other operating systems by reading
and writing other operating system's filesystems. Thus, disks and
diskettes from OS/2, NT, DOS/Windows, Apple Macintosh, Unix, and
other systems are easily read and (in most cases) written. Almost all
industry-standard file formats are well supported by Linux
applications, but product- or vendor-specific formats have only
limited support. This is most particularly felt with Microsoft Word
formats because of the popularity of Microsoft Office in the Wintel
Linux interoperates extremely well with other operating systems at
the network level. As a Unix-family operating system, Linux excels at
TCP/IP based networking and Internet connectivity; but it also
supports SMB (Microsoft file sharing and printing) via the Samba
package, Apple file and printer sharing via netatalk,
and IPX/SPX (Novell) file sharing via the Mars NWE (and the
In a mixed Windows/Linux network, using the Samba server and
smbclient systems, the Linux computers will appear in the Windows
systems' "Network Neighborhoods" and the Linux servers will
be virtually indistinguishable from NT file & print servers.
Likewise, the Linux system will have full access to files and
printers shared from the WFWG, Windows 95, or Windows NT systems.
Operating system emulation provides another type of compatability.
provides good DOS compatability, and the WINE
project provides (limited) Windows compatability. Two commercial
emulators are also available: Executor,
which provides solid Mac 68x000 emulation; and WABI,
which provides 16-bit Windows 3.1 emulation.
Digital Alpha and StrongARM, Intel 386/486/Pentium/PentiumPro/Pentium
II, AMD, Cyrix/IBM, Motorola 68x000, PowerPC (including Power Mac)
and Sun SPARC processors are all
supported by Linux.
This compares favorably with the Windows product line, where only two
processor families (Intel and Digital Alpha) are supported by NT (and
only Intel is supported by Windows 95/98). Although Windows CE
supports a wider range of processors, it is extremely limited in its
a wide range of PC hardware, including EIDE, IDE, SCSI, MFM, RLL, and
ESDI disks, SCSI and EIDE tape and CD-rom drives, sound cards, mice,
video cards, motherboard chipsets, scanners, printers, and so forth.
Linux probably has less hardware support than Windows 95 but more
hardware support than Windows NT.
Some hardware vendors provide direct driver support for Linux, others
make their product specifications freely available, and others
provide no drivers and no technical information on their products.
Obviously, products from vendors that supply their own drivers or who
adhere to industry standards for which drivers already exist are
supported first; products for which technical information is freely
available are supported, in most cases, shortly after they are
released, according to interest in the Linux community; and (the
relatively few) products for which technical information is not
available are not usually supported.
Linux devices generally appear as files.
Thus, any program that can read and write to a file can read and
write to devices (such as tape drives, modems, terminals, and so
This makes almost all devices available to all programming languages,
without relying on application programming interfaces (APIs) that are
language-specific. Under Windows, using the API model, many devices
can only be accessed from C and related languages, and require
adapter software (such as an OCX) to be accessed from other
Virtual memory provides Linux with the ability to run more programs
than would be possible using physical memory alone. The virtual
memory system extends beyond simple use of swap space, though;
programs which are being executed more than once are only loaded into
memory once, and the virtual memory system is used to merge the
single program image ("text area") with multiple data
images. This provides optimum use of memory while completely
protecting the memory space of each program, preventing each
incarnation of each program from interfering with other incarnations
of the same program or with other programs.
Linux runs on machines as small as the 3Com Palm
Pilot and Digital Itsy
and on machines as large as Beowulf
clusters (groups of fast PCs connected together to work
on large scientific problems).
Linux also supports multiple
processors and scales from one processor to 16.
Linux systems are exceptionally stable. Most properly-installed Linux
systems stay "up" until the hardware or power fails or
someone shuts down the system. Continuous
uptimes of hundreds of days (up to a year or more) are not
uncommon. Contrast this with some NT sites which reboot their servers
at least weekly to maintain stability, or with Windows 95 systems,
which some users re-install every four months to keep things running
One thing that contributes to this stability is version numbers on
shared libraries. Windows applications often install new versions of
the operating system's dynamic link libraries (DLLs), which can cause
existing applications expecting a different version of those DLLs to
break. Linux shared libraries, on the other hand, include the version
number in the library name, so that it is possible to install a new
version of the library without breaking existing programs.
Linux also features Unix file permissions, which prevent unauthorized
overwriting or editing of files. Because of this, viruses are
basically unknown in the Linux world.
Security problems within the operating system are usually addressed
within hours of discovery. This is also true with bugs in the
underlying hardware; for example, when it was discovered that Pentium
processors could be crashed by executing the codes 0x F0 0F, a
work-around was immediately prepared and made available for download.
Breadth of Services
Linux distributions typically include a full suite of network
services, utilities, and on-line documentation. This compares
favorably with Windows NT, where many facilities (such as telnet,
NFS, and X Window servers) are not part of the standard distribution
and are extra-cost or third-party options.
For example, Linux can readily accept incoming mail via multiple
POP-3 connections and feed that through the standard mail delivery
system. This is not possible under NT, even with the standard
Exchange Server add-on.
Use of the Network
Many portions of the Linux system are divided into two components
(that is, they have a client-server architecture) and the two
components may run on the same or on separate computers.
The graphical user interface, based on the X Window System, operates
in this manner. This permits applications to run on any computer on a
network and display on any other computer in the network. You can, on
one screen, see the windows of applications running locally on your
computer alongside the windows of applications running on another
system error logging, and other subsystems are also designed to work
in this way.
This capability can be invaluable in providing remote technical
support and system
administration. In fact, except for physical operations such
plugging in cables or turning computers on, almost any operation that
can be performed locally can also be performed remotely.
Multi-User Design and Security
Being based on Unix, Linux is designed to be fully multi-user. It is
possible for multiple people to work on a Linux system sequentially
or at the same time (remotely accessing from another computer or
terminal in text
or graphics mode).
Each user's files are saved in their own workspace and are protected
from unauthorized change by the file
ownership and permission settings (which can be set to enable
sharing of files when this is desired). Each program executes in its
own protected memory space and cannot interfere with or snoop on
Linux applications are different from Windows
but generally provide the same functionality. In many cases, free
open-source software on Linux provides the same functionality as
expensive, proprietary software on a Windows platform; for example,
The Gimp is a
manipulation package that is competitive with Adobe Photoshop, an
expensive proprietary package.
A number of popular proprietary commercial applications are also
available on Linux, ranging from Corel
Linux also provides a number of powerful scripting tools. These
permit you to write ".BAT
Files on Steroids" to automate tasks. These scripts may be
run manually or scheduled
for execution at a given time and may even have GUI
Nearly all Linux configuration information is stored in text files
which are easily manipulated by scripts (or edited by hand). This
makes the management of complex or repetitive administration tasks
much easier than on systems with limited scripting facilities and a
binary configuration (registry) system (such as Windows 95 or NT).
For example, adding a few hundred users to a system based on the
contents of (say) a spreadsheet file can easily be done on Linux, but
is impossible or nearly impossible on NT.
Linux does not hide information from the user. This means that full
information on the state of the system and on error conditions is
always available. This permits problems to be diagnosed and corrected
Linux provides tools to display the memory and CPU usage of each
program, to determine which programs (if any) are using a particular
file at any point in time, to trace any program while it runs, and to
forward the system error messages from a whole network of computers
to a single computer for monitoring.
One of Linux's key strengths is its user community, which won (over
all commercial vendors' technical-support departments) InfoWorld's
award for best support last year (in addition to Red Hat
receiving a Product
of the Year award). Since the Linux user community includes
Linux development community, it is common to receive answers to
complex technical support questions posted on
the Internet within half an hour, and certainly within a day.
Commercial support is available from the commercial distribution
vendors (through, for example, Caldera's
support programs or Red
Hat's support partners) and from hundreds
of consultants. Unlike consultants supporting proprietary
operating systems who rely on the system vendor for bug fixes and
technical data, Linux consultants have full access to the source code
and can investigate problems deeply and quickly. They can also
customize the software or fix bugs independently of the software
Linux provides a technically advanced, stable platform for computing.
Although its development history and support system is significantly
different from that of most operating systems, it is attractive for
business, academic, and personal use.
Linux is strong competition for the Microsoft Windows platform. The
key advantages over Windows are the open development and support
model, its Unix history and architecture, and its stability. Its key
disadvantages are related to its smaller installed base: fewer
applications are available, and there can be a delay between the
introduction of new hardware and support for that hardware in Linux.
Linux features greater customizability and reduced long-term
administration cost at the expense of a greater initial learning
Linux is gaining momentum and can be a very welcome change for users
accustomed to the instability of other operating systems.