This document started out as a justification for producing another Linux distribution. However, the Simple End-User Linux project (SEUL) has changed their goals from being a distribution project to working on the non-technical aspects of bringing Linux to end-users -- Linux in education, advocacy documents, managing and coordinating communications between projects, coordinating feedback from end-users, and hosting related development projects.
However, 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. In broadest terms, there are four categories under which this justification falls:
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:
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:
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.
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.
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.
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:
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.
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.
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.
"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.
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 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.
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" 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 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 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.
Despite the tremendous advantages of Linux as it stands right now, it is not without its problems. Several in particular which we are trying to provide solutions for include the following:
One of the by-products of the development of GNU/Linux is that it is a patchwork quilt of sorts, reflecting different interfaces, design goals, etc. It is not easy learning to use the vi editor, for example, or learning the command line syntax of find. Nor is there any consistency enforced among the various programs and utilities included in a standard Linux distribution. This leads to user confusion and frustration.
Current projects are underway to provide consistent graphical interfaces through the X Window system. These include KDE (the K Desktop Environment), GNOME (GNU Object Model Environment), and Teak (a GNU project which as far as I know exists only on paper). What we think would be ideal would be a consistent interface to configure various services, as well as user tools such as a calendar, word processor, emailer, and so on.
There is a lot of replication among the various packages in a Linux distribution. Some of the Mail Transfer Agents available (and this is not an exhaustive list) include sendmail, smail, qmail, and exim. Granted, the diversity is generally because there are differing design goals, but the choice is confusing to many users, who may not know how to use any one of them.
The major Linux distributions give either too much or too little information to the new user when installing. Red Hat gives too little -- you can choose packages individually but there is no information about the packages you are selecting beyond what category they fall under. Debian, with dselect, gives too much -- there are a number of status items on the display that are difficult to read and are not easily deciphered without the manual.
While many Linux users argue that any Linux user should Read The Fine Manual before installing, it can be pointed out that the Windows installation routing (which has problems of its own) does not require a lot of reading before someone can perform it adequately.
For whatever reason, the Plug and Play (PnP) specification has not been a particularly critical item for the Linux world to take care of. Many PnP cards do not work at all (though this is not always the fault of Linux - it is often due to the manufacturer keeping vital aspects of the technology secret so that a driver cannot be written), and the only current interface to PnP cards is through a program called isapnp. More work should be done in this area.
Debian and Red Hat both seem to spend most of their network installation time assuming that the machine being installed on will be connected to a network. Not enough potential problems with dial-up networking (Modem setup, IRQ tuning, PPP setup) are dealt with at installation. This process needs to be easier.
It can be very difficult to find help, especially for those not accustomed to a Unix system. New users may see a command line and try to get a directory by typing "dir," unaware that it will not work. Once a user learns "man" and "locate," she can do quite a bit, but the individual program documentation still needs to be manipulated with gzip. What would be ideal would be a natural language help facility which, when asked, "How do I check for disk problems?" responds with a reference to docs for fsck. A project like this is under development.
Learning Unix system administration from the ground up can be a nightmare. Most users are not concerned with issues such as hard vs. symbolic links, filesystem-specific issues (fat or vfat or fat32?), file permissions, user rights, group rights, and all the other trivia that make Unix administration what it is. Ideally, the user would be shielded from as much of this as possible.
Linux still suffers from a frustrating lack of applications in some areas. These are mostly the big-ticket commercial type apps, such as word-processors, spreadsheets, databases, and web browsers. The Linux software market is growing, but what we need are some free items like this for a freely-distributable system.
Some hardware vendors simply refuse to release the information on their products necessary to write a driver. A recent (and fairly public) example of this was Adaptec's response to Linux user complaints about not making information on new versions of the AHA-2940 BIOS available, meaning that the card behaves erratically under Linux (and since such a card usually has the main system storage hooked to it, that is not a Good Thing). Fortunately, Adaptec publicly posted that it was willing to work with the Linux community for a mutually beneficial solution. We can only hope episodes like this become more common.
Meanwhile, some vendors are actually giving instructions on their tech support pages on how to set their hardware up under Linux. A notable example of this is Linksys, the network hardware vendor. This too is a positive sign we can only hope will increase.
Earlier, we cited Linux' lack of traditional support as an advantage. That only part of the story, though. Most business IS departments want and need some tangible entity to stand behind a product which performs mission-critical services for the business, so that 24 hour support is needed. There is currently no central organization in the Linux community for this, and this is a major barrier to widespread acceptance of Linux in the workplace. Since it is such an obvious shortcoming, there are some things underway which should alleviate this problem:
Earlier, we promised that we would discuss in detail the advantages of commercial systems over Linux as it is now. We believe this is especially important because of the perceived (OK, real) ease of use gap between Linux and commercial offerings. While all the major distributions have made great strides in bridging the usability gap, Linux is "not there" yet. Some things in particular we notice about commercial systems that make them easier to use:
IDG books has made a pile of money with their "For Dummies" books. They can be bought at any bookstore, too -- "Running Linux" by Matt Welsh is a little harder to come by -- and it is not "For Dummies."
It is typically easier to find a friend who knows how to install a Windows device driver than it is to find someone who can do it in Linux. This is simply a function of the ubiquity of Windows, but is certainly part of the "ease of use" gap.
This is really the bread and butter of the commercial software world. Microsoft's biggest revenue generator, for example, is Office. As a result, a lot of time, effort, and research and development goes into these programs. They can do a lot (too much, perhaps), and are relatively easy to use. Nothing like MS Word 97 yet exists for Linux, nor is it likely to in the near future. This is partly because a project like that is enormous, requiring lots of time from lots of people, but also because it already exists, so why re-do it?
Applix makes a decent office suite for Linux. There is also StarOffice, so the market is not empty. But there is no doubt that Linux would help itself immensely by getting more of these apps.
Since commercial systems are tailored to the home user, they tend to be easier to set up and use by the home user. Under the best of circumstances, it can be quite easy to set Windows 95 up as an Internet dial-up networking station. (If PnP fails, it can be a nightmare, granted.) Nevertheless, quite a few people get on the Internet with Win95 so Microsoft must be doing something right in that regard. Linux can gain by offering some of the visual interfaces with interactive questions ("Wizards") for new users.
Large companies have budgets for developing newer and better User Interface technology, a luxury Linux does not have. But Linux can use this information to its advantage by learning from the success of some interfaces and the failures of others.
Can a world-class free end-user operating system be put together right now? We at SEUL believe it can, and it is our mission to make it happen. As is the case with many Linux projects, we are volunteers. We are pursuing this not for monetary gain or profit, but because we want to. If you also believe we are doing something worthwhile, please consider volunteering your time to the SEUL Project. Email email@example.com for details.