Linux Advocacy: Why Linux?
An essay by Chris Tyler.

A.J.Wells home  >  10 reasons to use linux  >  More reasons

The 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 by the X Window System and related libraries and utilities.

All of this software is freely available under the GNU General Public License or other similar licenses, which permit 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 Debian GNU/Linux). Both the 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 the kernel source code 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.


User Base

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 world.

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 commercial Caldera packages).

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. The DOSEMU package 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.


Architecture Support

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 functionality.


Hardware Support

Linux supports 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.


Device Accessibility

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 forth).

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 languages.


Memory Utilization

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 together 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 smoothly.

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 computer.

The printer, 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 as 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 the sharing of files when this is desired). Each program executes in its own protected memory space and cannot interfere with or snoop on other programs.



Linux applications are different from Windows applications, 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 free image 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 WordPerfect to Netscape's FastTrack web server.



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 interfaces.

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.


Problem-Solving Tools

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 very rapidly.

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.


User Community

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 Linux receiving a Product of the Year award). Since the Linux user community includes the 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

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 suppliers.



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 curve.

Linux is gaining momentum and can be a very welcome change for users accustomed to the instability of other operating systems.