WHY
LINUX ?
This
document is still very useful as a description of the reasons
for why Linux should be considered as an alternative to
other (particularly proprietary) operating systems.
Problems with existing systems
There are certain problems which are common to all commercial-release
operating systems - that is, any operating system which
has all of the following attributes: It costs money, typically
more than $50 Source code for the system is not available
There are strict limits as to how the system may be copied.
Consequently, Windows, MacOS, DEC Ultrix, Solaris, OS/2,
and other similar platforms are commercial operating systems.
Linux (including Red Hat Official Linux, though that is
a borderline case) and FreeBSD are free operating systems.
They are often available for the cost of media ($2 to $5),
the source code is available, often included with the main
distribution; and there are few limits to redistributing
the system. Since commercial systems are a source of revenue
for the companies who make them, some situations develop
which are not necessarily advantageous to computer users.
Most of these are directly related to the need for trade
secrets and the protection of source code. Some of these
problems include:
-Slow release pattern
Major upgrades to operating systems come very slowly. Windows
95 came out three years after Windows 3.11; Windows 98 might
be released this year. Other systems are similar. The major
distributions of Linux, on the other hand, are releasing
major updates every six months or so. Minor upgrades also
take longer to acknowledge and fix in commercial systems.
Recent problems with Netscape Navigator and Microsoft Internet
Explorer are good examples of this. In the case of the "denial
of service" TCP/IP bug, a Linux patch was posted for it
mere hours after the problem was isolated. Anyone who is
technically capable can fix the bugs, too, merely by changing
the code in question and recompiling.
-High
cost
Commercial operating systems, especially server operating
systems, like Windows NT Server and Novell IntraNetware,
can can cost more than $400 for a single copy and limited
number of user licenses. Even the more modest $100 for Windows
95 can be a problem for people in developing countries,
as well as students and others. The price for commercial
systems almost never includes development tools, which cost
even more. Linux, on the other hand, includes free C, C++,
FORTRAN, and other development tools.
-Tech Support?
Commercial systems require their customers to depend on
their companies for technical support. If there is a problem,
users must often wait on hold (while paying for a toll call).
While decentralized, it is often easier to get help with
problems in Linux. Section
Lack of source code availability
The fact that the source code for Windows and other systems
is a closely guarded secret keeps people from learning from
it, tinkering with it, and (perhaps) improving it. It means
that problems which are technically easy to fix (like the
infamous teardrop Pentium bug) cannot be fixed by any user
with the technical expertise, but everyone must wait until
Microsoft publishes a patch. The availability of source
code is a particularly useful thing for programmers and
computer science students, which form a significant percentage
of Linux users. In addition to the general problems noted
above, there are some others which seem to particularly
affect Microsoft Windows in all its variations. (Our intent
is not to pick on Microsoft specifically, but since it is
the single largest OS vendor, and most people are familiar
with DOS and/or Windows, it would serve as a useful example
for our purposes. Note also that we recogniz certain advantages
to commercial systems, which we will discuss in detail later
on. Problems particular to Windows include:
Planned obsolescence of hardware
A growing computer industry requires that people periodically
get faster and more capable hardware to keep up with the
advances the industry makes. Microsoft does not make it
a priority to maintain backward-compatibility with older
systems when it releases new operating systems. While it
is technically possible to run Windows 95 on a 386/25 (I
have seen it done), it is not an experience any user would
relish. Running Windows 95 on any hardware less than a 486/66
with 16MB of RAM is an exercise in masochism. Cost becomes
an issue again: until quite recently a new system would
cost close to $2000; many people do not have the money to
upgrade every two or three years. (I have heard that Windows
98 will not support any processor below the level of the
"classic" Pentium.) So that 486 becomes a very expensive
paperweight unless there is a platform which can run on
it acceptably. Linux is such a platform. Section
Monopolistic attitude
Epitomized by recent legal troubles with the Department
of Justice and Sun Microsystems, there is a general perception
that Bill Gates just wants to rule the world. (The latest
Bond film, "Tomorrow Never Dies," even has a brief allusion
to this.) Whether true or not, many people are seeking alternatives
to Microsoft systems just because they are uncomfortable
with Microsoft having a monopoly in this area. Section
Crash-prone
No one in the computer industry was surprised when Steve
Ballmer, Microsoft Vice-President, admitted that in the
rush to beat Netscape, Microsoft had cut corners in quality
control. (So had Netscape -- we're not playing favorites
here.) Based on anecdotal evidence, many people have problems
with Windows crashing for no particularly good reason, often
causing people to lose work. Sometimes it is just an annoyance,
but other times it can be quite serious. While Windows 95
and in particular Windows NT are far more stable than Windows
3.1x, they still fail with alarming regularity. There are
documented cases of Linux servers running for over a year
at a time without a system-halting crash.
Technical merits of Linux
"Everyone's a critic." Too true. So, you may ask, what do
we suggest to improve the computing situation? If you have
read this far, you probably think we are going to say "Linux!"
And you would be right. Linux provides an excellent base
to work from for several reasons, and although it is not
perfect, we believe it is the best place to start.
Linux is Network-friendly
Nowadays, people are becoming more and more enamored of
the Internet and what it can do for them. It is by no means
an uncommon thing to see major vendors advertise their World
Wide Web addresses during football games and other events;
many TV commercials have them, too. The American marketing
machine sees the Internet as a phenomenon that is here to
stay, and the public wants to take advantage of it. The
best way to do that now is with a computer. Set top devices,
like WebTV (which Microsoft owns, in case you were curious)
have a long way to go before they offer the flexibility
and power of a PC with a modem. Although not a huge movement
yet, there will be more networks set up in homes as costs
for basic computer hardware and networking equipment continue
to plummet. The small office/home office network can now
be realized for about half the price it would have cost
a year ago. Most industry news sources expect this trend
to continue. This will probably be more of a factor when
homes and small offices want to get their own high-speed
internet connections and need dedicated hardware to manage
it. Thus, one of the major litmus tests of the quality and
utility of a modern operating system is how well it networks.
Since Linux was developed by a team of programmers over
the Internet, its its networking features were given high
priority. Linux is capable of acting as client and/or server
to any of the popular operating systems in use today, and
is quite capable of being used to run Internet Service Providers.
In fact, in Southern Minnesota, all of the small local ISP's
(I do not know anything definite about the phone companies)
use Linux. It is also well-suited to serving as a dial-in
network station. Linux supports most of the major protocols,
and quite a few of the minor ones. Support for Internet,
Novell, Windows, and Appletalk networking have been part
of the Linux kernel for some time now. With support for
Simple Network Management Protocol and other services (such
as Domain Name Service), Linux is also well suited to serving
large networks. Finally, all these networking options will
run quite acceptably on minimal hardware configurations.
It depends on what services are needed and in what quantity,
but I know that for some time a small college in Southern
Minnesota ran a 56k baud leased line (access for a student
body of about 300) gateway with E-Mail, DNS, and FTP on
a single 486/33 with 32MB RAM and a lot of big SCSI drives.
Linux is Multi-user
Linux is an implementation of the UNIX design philosophy,
which means that it is a multi-user system from the word
"go." This has numerous advantages, even for a system where
only one or two people will be using it. Security, which
is necessary for protection of sensitive information, is
built into Linux at selectable levels. More importantly,
the system is designed to multi-task. Whether one user is
running several programs or several users are running one
program, Linux is capable of managing the traffic.
Linux is Open
Perhaps most importantly for what we are trying to accomplish
with SEUL, Linux is open. That means that for the entire
base system, which includes the kernel, the GNU tools, and
all the basic utilities, we as programmers and users have
access to the source code as well as the right to modify
it. Without that access and that right, this project would
not be possible. Neither would many of the other Linux projects
currently underway, including GNOME, the GNU Network Object
Model Environment, a desktop interface; MNEMONIC, a free
web browser under development; or many others. If users
like SEUL, they will be able to modify it if they wish.
An important aspect of open software is the ability to write
kernel extensions and drivers as needed. What if new hardware
comes out that we want to take advantage of? We just write
the driver -- if someone else doesn't do it first. Another
huge advantage of an open system is a large number of software
authors and beta testers. This makes the software testing
and refinement process faster and better. Because there
is not a lot of commercial software for Linux (though that
is an increasing market), most software written for Linux
is written because the authors want to do it. Since there
are no corporate deadlines, there need be no compromise
of quality. Also, I think many programmers relish the idea
of showing off some artistry, since others will actually
see and appreciate their code. This means many good things
for the user. It means higher-quality software, which means
less prone to crash, more efficient, what have you. Often,
if you have a question, it is often possible to ask the
author of the software him/herself via E-Mail or Usenet
Newsgroups. It makes it easier for people to get involved
in the development process, which means that even if someone
is not a programmer, he or she can have a profound impact
on a piece of software by suggesting how to improve it to
the development team.
Linux is "Free"
Linux is "Free" in two senses. In one sense, the Linux consumer
is free to modify the system and do anything he or she wishes
with it. In another sense, acquiring Linux does not necessarily
require any cash outlay at all. There are two very popular
methods for acquiring and distributing Linux: FTP and CD-ROM.
Most of the major Linux distributions (Red Hat, Debian,
Slackware, Caldera) are available for free download from
several popular sites. Though time consuming, it does not
cost anything beyond connection charges. Getting Linux by
CD-ROM seems to make more sense in many cases. For a few
dollars (essentially the cost of the physical disc itself
and shipping and handling), anyone can get the major Linux
distributions. Many vendors even offer several-CD sets with
prices averaging less than $2 per disc. This would be a
bargain if Linux were a run of the mill system with few
frills and no truly compelling features. As a matter of
fact, Linux comes with full networking capabilities, a mind-boggling
array of programs, utilities, and development tools. The
development tools in particular make Linux a great platform
for learning how to write software. In addition to the tools,
you often get a full CD of source code to browse and study
and tinker with. Another advantage is that, as a multi-user
system, it is much more likely to keep you from shooting
yourself in the foot as you learn to program -- I have seen
Windows 95 and how it handles errors in Borland's C++ compiler,
and I am very glad I use Linux. Of course, if you are not
inclined to write software, these things do not need to
be installed. Of course one of the greatest advantages of
Linux is that it is the freedom to modify the existing code
makes it a very easily extensible platform. That is exactly
what we are trying to do with EUL - modify and extend the
base system to make it easier for people who do not have
years of Unix experience to work with the system.
Linux is Reliable
Linux is one of the more stable operating systems available
today. This is due in large part to the fact that Linux
was written by programmers who were writing for other programmers
and not for the corporate system. The only people who made
the decisions on what went into the system were programmers.
Also, the deadline pressure is not as strong when one is
developing as a hobby. What does this mean in practical
terms? In a recent issue of Linux Journal, a feature was
run on how long a Linux system has continuously run. Several
uptimes of over 1 year were reported. This is because the
system is designed to be upgraded and modified "on the fly"
-- the only reason one would need to turn off a Linux system
would be to add hardware or boot from a different kernel.
That means that the end-user can count on Linux to work
consistently, day in and day out. Another factor which touches
on reliability is that there are currently two mature program
packaging standards in the Linux world. Debian and Red Hat
each have their own packaging systems; both will check dependencies
(package A needs to have package B installed before it will
run, so the installer will install package B), both can
upgrade an entire running system without a reboot. this
makes it easy to upgrade parts or all of a system, as well
as add new software, or remove unwanted software.
Linux is Backwards-Compatible
Linux has superb support for older hardware. In fact, it
is often easier to find hardware support for 486-era hardware
than the latest gizmos to hit the market. This is because
the driver authors need time to write and test the drivers,
and some vendors are not exactly forthcoming with the information
required to write a driver. What this means for the user
is that they can protect their investment in hardware. When
old hardware is rendered obsolete by the latest version
of Windows (or MacOS...we try to be fair), it can most likely
still run enough of Linux to be perfectly useful. There
is no reason for Linux users to try to make hardware obsolete
- and every reason for them to provide support for older
hardware.