The Practical Manager's Guide to Linux
Can you profitably use Linux in your organisation?


An osOpinion.com column
Authored by: "Ganesh C. Prasad"


"This column falls under osOpinion's "Open Source Media Copyright Policy", which permits anyone to copy, print and redistribute it, subject to certain minor conditions. Please read the policy for details."
A downloadable version of this entire document is available "here."

Synopsis:

This document on Linux is unique in that it speaks the language of business, from the viewpoint of a corporate user. It addresses the issues managers want to talk about, -- cost savings, ease of use, support, uptime, productivity, vendor independence, staffing and training, -- backed up by detailed references. You may or may not decide to use Linux after reading it, but you will certainly come away with a better understanding of the options that Linux now gives you.

Table of Contents

A Brief History of Linux

"Where can I use Linux today?"

About the author

"Why should I bother about Linux?"

This document is aimed at IT managers, -- decision makers who need to make technology choices to solve business problems. From the viewpoint of this group, the arrival of Linux is A Good Thing, because, if nothing else, it represents another choice to add to the options available. In the worst case, if Linux doesn't meet your requirements, you can simply walk away from it. It is an option, not an obligation.

Linux has seemingly appeared out of nowhere and captured 17% of the server market, -- a growth rate of 212% over the past year. And this was before commercial vendors got onto it in a big way. IDC now estimates that over the next 4 years, Linux will grow faster than all other operating systems combined, including Windows. Its growth trajectory could soon push it in the direction of your organisation (if it's not there already), and you could find yourself having to make some decisions quickly.

New technologies are risky, and adopting one before it becomes completely mainstream could prove either career-enhancing or career-limiting, depending on how it plays out in the market and how you deploy it within your organisation. There is both risk and opportunity in Linux. As an IT manager, you need to analyse Linux carefully, understand where it is strong, where it is weak, where it is likely to go, and then evaluate where you could profitably use it, if at all.

This document is an attempt to collate all the relevant facts and market information about Linux, without hype or prejudice, into one easy-to-read guide, as it were, so that most common questions about this operating system are answered satisfactorily. It should easily be worth an hour of your time.

References:
Linux 1998-99 growth and server marketshare: http://www.news.com/News/Item/0,4,30027,00.html?st.ne.fd.gif.a
IDC estimate of Linux growth (1999-2003): http://www.it.fairfax.com.au/breaking/922943886.html

A Brief History of Linux

From a purely technical standpoint, Linux is just another variant of Unix. What makes it unique is something other than its technology. To really understand the reasons for its amazing popularity, it may be worth delving into a bit of history.

The GNU Project and the Free Software Foundation

The GNU project was started in 1984 by Richard Stallman, a researcher at MIT's Artificial Intelligence labs, in reaction to the (then) new practice of keeping source code secret and enforcing software licensing. Stallman saw the withdrawal of source code as a curtailment of programmers' freedom to modify and improve software. He also saw the license restrictions on copying as being at odds with his philosophy of being a good neighbour and sharing ideas. So he set out to rewrite all the software then commonly in use, single-handed if need be, and make it free for everyone to use, modify and redistribute, without any restrictions. (A task as enormous as this would have put off a lesser man, but Stallman's determination, self-confidence and technical skill are now legendary.) His goal was to recreate a complete operating environment that was free of such restrictions, with all the tools and utilities that a computer user would ever need.

The model he chose was Unix, because it was technically better than the other operating environments of the day. But because he was against the restrictive licensing of Unix by AT&T, he called his project by a recursive acronym, GNU, for "GNU's Not Unix".

(Free software programmers often display a wacky sense of humour. For example, the free equivalent of the Unix Bourne shell is called bash, for "Bourne again shell".)

Richard Stallman proved to be a formidable hacker. (He uses the word "hacker" in the positive sense of master programmer, reserving the word "cracker" for people who break into systems.) He single-handedly wrote free versions of many popular Unix utilities. Among his lasting software contributions are the GNU C compiler gcc and the emacs text editor.

Richard Stallman established the Free Software Foundation to raise funds to produce free software. For him, the "free" in free software refers to freedom, not price. He is not against software being sold for money as long as the source code is available and other programmers have full rights to modify and redistribute the software. As he is fond of saying, "When you say Free, think free speech, not free beer."

References:
The GNU project: http://www.gnu.org

The importance of the GNU General Public License

Richard Stallman is a great hacker who wrote some really amazing software, but the contribution for which he will probably be remembered is not a piece of software but a legal document. He quickly realised that even if he wrote great software and gave it away, someone else could come along, make a few changes to the code and then copyright the whole lot by claiming it to be a differentiated product. Thus, the aim of sharing would be defeated and he would be foolishly giving away something which others could simply exploit.

He came to the conclusion that he had to design a special license to ensure that the software remained public and all modifications and improvements, no matter who made them, were made available to everyone. Ironically, as the legal system has no mechanism to protect publicly-owned intellectual work, Stallman had to rely on copyright law itself to design a license that was opposed to it in spirit! The way it works is very interesting, demonstrating that even Law can be a malleable medium to a creative mind. To protect his software for everyone, he first copyrights it, thereby preventing someone else from seizing control of it at a later date, then gives it away under controlled conditions that are essentially protected by Contract Law. The conditions are that anyone modifying the code for later redistribution has to make their source code public on the same terms. No proprietary modifications are allowed, except for private use. This license is known as the "GNU General Public License" or GPL. It's also called copyleft, because in a deep sense, it is the opposite of a copyright. It gives freedom instead of restricting it. (Stallman has often been accused of being a socialist or communist, an anti-commercial crusader, but the reality is probably simpler than that. He is an idealist who just believes very strongly in the "right" of programmers to share code without artificial restrictions. A naive philosophy, according to some, but one that is nonetheless shaking up the software industry.)

Many people think that free software, public domain software and shareware are the same thing, but this is not so. Shareware is commercial software. Authors of shareware programs expect to be paid, just like authors of any commercial software, but they are willing to allow free distribution of their software to popularise it. Upgrades and bug-fixes are available to those who pay for the copies they receive. The source code is typically not available. Shareware is more a marketing technique than a form of software freedom. Public domain software, while free, is not under copyright at all, which means that someone making modifications to it can claim copyright to the modified version and "take it out of circulation". GPL-ed software, on the other hand, is copyrighted by the original author and licensed to the public, albeit under very generous terms. It ensures that the software remains perpetually free. GPL could be thought of as Guaranteed Public for Life. There are other free licenses as well, the most famous of which is the BSD license, which has sometimes been called "copy-neutral", because it enforces no restrictions at all on copying and redistribution, not even the GPL's condition that changes should be made available to the public.

The GPL and other free software licenses must seem very quaint concepts to people from the commercial world of copyrights, patents and non-disclosure agreements, but increasing numbers of high-quality software products are given away every year under such licenses and are being used by increasing numbers of computer users, forming a credible threat to established vendors of commercial software, so they cannot be pooh-poohed as mere idealistic nonsense. You need to understand how they work, even if you don't agree with their philosophy.

References:
The GNU General Public License: http://www.gnu.org/copyleft/gpl.txt
The BSD License: http://www.dislessici.org/opensource/bsd-license.html
The Artistic License: http://www.weblint.org/artistic.html
"Linux may be running on some spindly legal legs" -- an analysis: http://www.businessweek.com/cgi-bin/bwdaily_full?right=/bwdaily/dnflash/apr1999/nf90427b.htm

Enter Linus Torvalds

Richard Stallman wrote an amazing amount of software, even suffering painful carpal tunnel syndrome for a few years from so much typing. But after all his efforts, he did not succeed in creating a complete, working system. The core, or "kernel", of the system did not yet exist; only peripheral utilities were available. These are now famous as the "GNU Utilities", and a Windows version is even distributed with Microsoft's NT Resource Kit. (Bound by the terms of the GPL, Microsoft includes the source code as well!)

In 1991, a Finnish Computer Science student named Linus Torvalds wrote the first version of a Unix-like kernel for his own use, and posted the code on the Internet with a request to other programmers to help him build it up into a working system. The response was overwhelming, and what began as a student's pet project rapidly developed into a non-trivial operating system kernel. Looking around, Torvalds was pleasantly surprised to find that virtually everything else he needed was already there in the form of the GNU Utilities and other free software. He put them all together and named the complete operating system after himself, -- Linux, for Linus' Unix. (He pronounces it LINN-ucks, not LYE-nucks.)

Richard Stallman is miffed that the contribution of GNU software to Linux is not often acknowledged. According to him, the operating system should properly be called GNU/Linux, but most people, even those sympathetic to Stallman, find it quite a mouthful, so the de facto name for the OS remains Linux. However, Stallman cannot complain about another decision by Torvalds -- to release the source code for the Linux kernel under the GNU General Public License.

Today, the entire Linux system, kernel and utilities, are freely available with source code for anyone to use, modify and redistribute. Judging from the frenetic activity on the developer websites, thousands of qualified programmers from around the world are accepting the GPL's invitation to modify and improve the system in all the ways they think fit.

References:
Linus Torvalds' first post (?) re. Linux: http://www.debian.org/Lists-Archives/debian-user-9804/msg02622.html
How Linus Torvalds pronounces "Linux": http://www.ssc.com/lj/images/english.au

A Hard Look at Linux's Claimed Strengths

You may have already heard the most commonly cited strengths of Linux. Let us examine each of them carefully and try to separate hype from reality.

Zero price tag

Linux is often touted as being "free", though in practice, no organisation will install software without a support agreement in place. Given that support for Linux by reputed vendors as well as the retailer next door is mushrooming, it is very likely that Linux will be used by many organisations with this kind of third-party support arrangement. So hype notwithstanding, Linux will never be a zero-cost solution.

However, when an organisation looks at licensing costs, especially over multiple users and multiple computers, it may find to its pleasant surprise that Linux does deliver a significant cost advantage after all.

For example, Computer Currents magazine estimated that a fully configured Windows NT server with webserver, e-mail, development tools and database would cost more than $4500 ($4636) to set up, while an equivalent Linux setup would cost only $50 for a Red Hat CD with all this software bundled (hardware costs being the same). What's more, the Windows license fees need to be multiplied by the number of such installations, whereas the Linux solution incurs only a one-time cost, -- the CD's purchase price -- since the software can be freely installed on an unlimited number of machines.

Now factor in support costs. In a recent announcement, Hewlett-Packard has offered unlimited, 24/7 worldwide phone and e-mail support for Linux for a fee of $130 per month per server, or $1560 a year per server. This seems a reasonable ballpark figure for support from other third-party vendors as well. So the cost argument in favour of Linux appears to be justified, and of the order of $2500 per server in the year of purchase, even assuming zero support costs for Windows NT. Microsoft and its partners offer a variety of support options with different pricing terms. So the Linux cost advantage should be even greater when NT support costs are factored in.

Another hidden cost advantage of Linux is its ability to run on older machines with less memory and disk capacity, which translates into savings on hardware upgrades. Each subsequent release of Windows, on the other hand, seems to require upgrades to hardware as well. Faster chips constantly appear, but are saddled with increasingly bulky software, neutralising their speed advances. Hence the saying, "Andy giveth and Bill taketh away", -- a reference to Intel's former chairman Andy Grove and Microsoft's Bill Gates. Linux provides excellent performance on new hardware while still running adequately on older machines.

Software bloat is another hidden cost on traditional Windows platforms. The GNU C/C++ optimising compiler on Linux occupies 10 MB of disk space, and the associated editing, debugging and project management tools together account for less than 2 MB. Microsoft Visual C++ 6.0 Professional Edition, on the other hand, requires 290 MB of disk space. Even the fact that Visual C++ is a visual tool with an integrated editor and debugger doesn't seem to justify such a large difference in size.

In the past, it has been pointed out that "Linux is free only if your time is worthless", a valid reference to the difficulty (for a relative novice) of finding and editing various configuration files, which was the only way to administrate Linux. However, new administration and configuration tools, such as Red Hat's linuxconf and Caldera's lizard (for Linux Wizard), provide centralised, graphical administration, largely eliminating the need to edit configuration files by hand. As such tools improve, Linux system administration effort should reduce to acceptable levels.

Last year, the Mexican government embarked on an ambitious project to equip 140,000 schools with computers. They found the license costs of Microsoft Windows so high, even with volume discounts, that they opted to use Linux instead, saving an estimated $124 million. Over a large installed base, the cost advantage of Linux becomes compelling.

When Digital Domain rendered the visual effects for the movie "Titanic", they needed a large server farm to handle the processing load. Ultimately, they settled on 105 servers based on the Compaq/Digital Alpha chip. The operating system they chose was Linux. Though estimated savings are not publicly available, Digital Domain's website says that cost was the primary reason for the choice of Linux. (Of course, the system also performed adequately, otherwise the savings would have been meaningless.)

Your mileage might vary, and it's best to do a rough calculation before making a decision.

References:
The Computer Currents article: http://www.currents.net/magazine/national/1524/inet1524.html
HP's 24/7 worldwide support package for Linux: http://www.news.com/News/Item/0,4,35392,00.html
The Mexican school computerisation project (ScholarNet): http://www.wired.com/news/news/technology/story/16107.html
Linux and the Titanic: http://www.linuxjournal.com/issue46/2494.html

Do-it-yourself flexibility

A commonly-heard Linux "advantage" is that users can easily modify the software to suit their requirements. There are two aspects to this. One is that unlike with most commercial software, which is distributed only in binary form, the Linux source code is readily available, making it physically possible to modify and recompile it. The other is that the GNU General Public License expressly permits anyone to modify and redistribute the software, making this legally possible as well.

So, should you make changes to Linux code just because you can? Unless your needs are very specialised and you know exactly what you're doing, don't. Among other things, you risk making your version incompatible with future Linux upgrades.

So is this open source feature really an advantage?

This is a subtle point to note: The availability of Linux source code is important to users because it makes it easier to modify, but it is not necessary that they do it themselves. It's like when you're looking to buy a car, and choosing brand A over brand B because of the easier availability of spares. It's not that you intend to replace parts yourself. It just gives you greater confidence that you can easily get it done.

There was a report last year that provided anecdotal evidence of such a benefit. Microsoft decided against developing an Icelandic version of Windows 95 because the limited size of the Icelandic market couldn't justify the cost. When approached by volunteers from Iceland who offered to do the port, Microsoft refused, on the grounds that the Windows source code was secret. There is no similar "dog in the manger" problem with Linux, because there are no cost considerations and the software requires no permission to modify. Unsurprisingly, an Icelandic version of Linux's 'K' Desktop Environment exists. With Linux, minority users with special needs are not at the mercy of any vendor.

References:
Microsoft vs. Iceland: http://kyle.seattletimes.com/news/technology/html98/alticel_063098.html
Icelandic KDE: http://www.mbl.is/frettir-ifx/?MIval=forsida&frontcatform=7&nid=400041&tp=1

Freedom from licensing headaches

Using commercially licensed software carries with it the responsibility of ensuring that you stay compliant with the license at all times. Exceeding the licensed number of installations is a crime. In many countries, the CEO of a company that is found to be in breach of software license contracts is personally accountable and, in theory, can even go to jail for it. This means that organisations must keep track of the number of purchased licenses and the actual number of installations of every piece of software that they use, -- an administrative overhead. Organisations that purchase large numbers of licenses of many different software products find that they need the help of special "license management software", a product which seems like a solution to an artificial problem.

Sometimes (and this may be familiar to many), production systems fail to scale under unexpectedly heavy loads because a piece of software enforces limits on the number of concurrent connections or transactions, based on the number of purchased licenses. Some products, for example, BEA's Tuxedo middleware, permit utilisation slightly above the licensed limits, but it must be particularly irritating when services are affected, not for technical, but for legal/commercial reasons that can be easily regularised without the need for such drastic enforcement.

Linux and other free software products do away with such considerations altogether. You can install the software on any number of machines without breaking the law. In effect, Linux gives you an "unlimited-user, unlimited-installation" license. That is an undisputable plus for those who are currently held accountable even for inadvertent license violations. Note, however, that commercial products that run on top of Linux may still be subject to license restrictions.

Linux's free license also means that you don't need to worry about staying within a budget, or about exposure to adverse changes in vendors' licensing terms. The elimination of Microsoft's concurrent licensing for Office and BackOffice was an unpleasant surprise to many organisations, who saw their licensing costs go up sharply. The Microsoft antitrust trial also brought to light internal company e-mails in which executives planned a move away from the current practice of one-time licenses to annual (recurring) licenses, and this was planned to start as early as 2001. Linux and other free software can be a godsend to managers who are exposed to such harsh and volatile regimes.

References:
The Business Software Alliance on penalties for licensing violations: http://www.bsa.org/uk/penalties
Fines paid by companies that breached software license agreements: http://www.elronsw.com/metering.html
Microsoft eliminates concurrent licensing: http://www.idg.net/idg_frames/english/content.cgi?vc=docid_9-69142.html
Microsoft mulls annual Windows fee: http://www.news.com/News/Item/0,4,29088,00.html?st.ne.fd.mdh
Forbes reports on Microsoft's license fee hikes: http://www.forbes.com/forbes/98/0907/6205050a.htm

Stability

"It never crashes!"

It is sometimes remarked that the reason why Linux rarely crashes is that it isn't required to do as much as other operating systems. If Linux is loaded to comparative levels, the argument goes, it will crash as often. Observation leads us to conclude, however, that Linux shares this stability trait with other Unix strains and larger proprietary systems like VMS and IBM mainframes. The only computer systems that are known to crash are PCs and Macintoshes. The reasons may not be far to seek. Stability is largely an architectural issue, because implementation bugs can be squeezed out over time. A hardware architecture that has never grown too far from its 1981 design roots, early design compromises, and the continuing requirement for backwards-compatibility with poorly-written applications hobble even the latest versions of Windows. Also, the feature-set of Windows is a moving target, frustrating attempts at eliminating implementation bugs. The other crash-prone system, the Macintosh, is as notorious for its lack of protected memory and pre-emptive multitasking as it is famous for its user-friendly interface. With such crippling constraints, it is a wonder that these operating systems do not crash more often than they do.

Therefore, far from stability being a lucky accident in Linux, it is a commonplace feature that is taken for granted in most mainstream operating systems. It is only Windows and the Mac that are aberrations. The Unix design which Linux shares is a time-tested one. Linux, it must be noted, has the advantage of a quarter century of Unix experience to draw on, and the right lessons appear to have been learnt. Linux's design shows aspects of the most modern operating systems concepts and the most time-tested ones, cherry-picked with a luxury only a newcomer can afford. Most significantly, the open-source code model of Linux seems to ensure that bugs are detected and fixed early.

As even IBM says on its website, Linux is stable, functional and offers value.

Loading Linux with applications may make it slower, but is hardly likely to make it crash. That is a patently spurious argument.

References:
IBM's endorsement of Linux's quality and stability: http://www.software.ibm.com/data/db2/linux
Diagnostics page for Mac freezes and crashes: http://www2.northstar.k12.ak.us/help/mactips.html
Windows 95 and 98 may crash every 49.7 days -- news item: http://news.com/News/Item/0,4,33117,00.html
Windows NT's "blue screen of death" -- reasons: http://www.webshopper.com/jhtml/templates/display_content.jhtml?id=129634

Performance

Many benchmarks have been conducted by independent organisations, pitting Linux against Windows NT and against the various flavours of Unix. Apart from one study that is discussed later in this section, it appears that Linux quite consistently beats NT not only on single-processor machines, but also on multi-processor machines on which NT is expected to scale better on account of its multi-threaded architecture. Linux seems able to deliver good performance even with "heavyweight" processes instead of the "lightweight" threads that NT uses. Process forking in Linux is particularly efficient, almost obviating the need for threads. Suprisingly, Linux also narrowly beats Solaris on its home ground, SPARC hardware, albeit only single-processor SPARC machines. Again, a little analysis reveals a major reason. Unix systems, Linux included, treat graphics as a user-level application that can be optionally run. Reasonably sophisticated graphical interfaces exist for Linux, but these are not tightly integrated with the operating system kernel. They can be "switched off" when not required. On servers, graphics capability is an unnecessary overhead most of the time. Typically, on Unix servers, Linux included, the graphical interface is invoked only when the system is being administrated, and turned off at all other times, delivering a significant performance boost to the system, because graphics is a very resource-intensive capability.

The Windows design, by contrast, suffers from an overly tight integration of the graphics subsystem with the kernel (unsurprising in view of its desktop roots), and this design model will forever handicap it in its role as a server operating system. Perhaps Linux will lose its slim performance advantage against Solaris when it acquires more high-end features and grows in size. Time will tell. However, the constant fine-tuning of the kernel by a worldwide group of expert systems programmers could continue to give Linux a performance lead even in future. It will be an interesting battle to watch.

In April this year, a benchmark conducted by a company called Mindcraft reported that Windows NT with Microsoft's IIS (Internet Information Server) performed 2.5 to 3.7 times faster than Linux as a Windows fileserver (running Samba) and as a webserver (running Apache). This is somewhat surprising, because it is contrary to what several independent testers have found in the past, including Sm@rt Reseller On-line.

Subsequent information on the benchmark found that the NT machine used was highly tuned and optimised for the tested load, while the Linux machine was not, a fact later admitted by Microsoft. It was also discovered that the benchmark was sponsored by Microsoft, and was not as "independent" as it was made out to be. (Microsoft still touts these figures, though). These facts therefore put the results under a cloud. For now, rather than debate the legitimacy of the Mindcraft benchmark, it is best that you design and conduct one yourselves, tailoring it to your situation. After all, not everyone runs servers that are as high-end as that used in the benchmark.

Re. client-side performance, even the famous leaked Microsoft memo, the second of the "Halloween documents", admitted after internal testing that on the same hardware, Netscape Navigator on Linux was 30-40% faster than Internet Explorer on Windows NT.

"Benchmarketing", of course, ranks with lies, damned lies and statistics, but from a variety of sources, the impression one gets is that Linux is one of the leanest and fastest operating systems available. With the new kernel (version 2.2), it has reportedly even drawn level with the ultrafast FreeBSD. Nevertheless, the Linux vendors need to submit formal SPEC or TPC benchmark figures, otherwise this sort of controversy could keep arising. Incidentally, the TPC benchmarks have a price/performance parameter, and Linux should do very well on that!

References:
Smart Reseller Online's webserver test in which Linux/Apache beats NT/IIS: http://www.zdnet.com/sr/stories/news/0,4538,2196115,00.html
Smart Reseller Online's fileserver test in which Linux/Samba beats NT: http://www.zdnet.com/sr/stories/news/0,4538,2196106,00.html
Microsoft touts the Mindcraft benchmark: http://www.microsoft.com/windows/dailynews/042199.htm
Microsoft spokesman admits that Linux machine in the Mindcraft benchmark was not well-tuned: http://www.itweb.co.za/sections/enterprise/1999/9904221410.asp
Linux Weekly News finds flaws in the Mindcraft benchmark: http://lwn.net/1999/features/MindCraft1.0.phtml
A commentary on Mindcraft's planned second series of benchmarks: http://linuxtoday.com/stories/5424.html
The Halloween documents:
Halloween I: http://www.opensource.org/halloween1.html
Halloween II: http://www.opensource.org/halloween2.html

Standards-compliance

By definition, open source Linux cannot have proprietary features. Under the terms of the GNU General Public License, it is illegal for any entity to make modifications to Linux without making the corresponding source code publicly available. At one stroke, this takes away the incentive to "hijack" the system and produce a proprietary variant. The license therefore ensures that the only changes to the system that will last are those that are accepted by the "community". The community has no vested interest in creating proprietary standards and protocols, and so the OS naturally coalesces around industry standards. This is not mere theory. Linux today is a POSIX-compliant OS and its constituent subsystems support all relevant ANSI, ISO, IETF and W3C standards. However, certification is a different issue, and the Linux community is against having to pay standards bodies for something that doesn't really benefit them. Therefore, Linux is currently in the state of being compliant with some standards without actually being certified.

Ironically, while Linux does a good job of supporting industry standards, there is still a lack of standardisation between different Linux distributions. True, the differences are minor, since all distributions have free access to the entire Linux codebase. They just differ on what applications they bundle with Linux, the versions of those packages, the installation utilities and the locations they use for various system files. A project called the Linux Standard Base project has sprung up that aims to unify all distributions in a few respects, such as standard directory locations for system files. It is in the interests of users for this effort to succeed, since it will make for a more predictable and uniform user experience.

Other than that, organisations looking for a fully industry standards-compliant operating system do not have to look beyond Linux, provided it meets their other acceptance criteria.

References:
POSIX and Unix 98: http://lwn.net/lwn/980611/standardseditorial.html
Linux Standard Base home page: http://www.linuxbase.org
Interesting viewpoints on Linux and standards compliance: http://lwn.net/lwn/980618/ianresp1.html, http://lwn.net/lwn/980618/Editorial.html

Diverse hardware support

This is a mixed scorecard for Linux. On the one hand, it runs on virtually every known processor, whether RISC or CISC, 32-bit or 64-bit. The most common processor for Linux is of course, the Intel x86 family, but it also runs on Motorola's 68k, the IBM/Apple/Motorola PowerPC, Compaq/Digital's Alpha, MIPS chips, Sun's SPARC and UltraSparc and Intel's StrongARM. HP's PA-RISC chip is perhaps the only major one on which Linux does not yet run, but HP is assisting an independent group, the Puffin Group, to port Linux to PA-RISC. Intel is also supporting Linux, and it is Intel's stated objective to make Linux run fastest on its chips. Intel is providing technical information about its 8-processor motherboards to the Linux community, so that high-end Xeon servers running Linux can be a cost-effective alternative to customers. Intel is also sharing advance information about its forthcoming 64-bit Merced chip, which is expected to be the way the industry will go in a few years. When Merced arrives, Linux will be ready to run on it.

On the less glamorous side, computers running Intel x86-compatible AMD or Cyrix chips are among the most inexpensive hardware available, and zero-license fee Linux can make such machines very attractive to the low-end of the market as well as to bulk purchasers. Some vendors have woken up to the ease of customisation of this general-purpose OS and its royalty-free convenience, and have started putting it on such unlikely hardware as TV set-top boxes and MP3 music players.

This breadth of chip support is a tremendous achievement that no other operating system can boast of, though the free BSD variants come close. Linux has in fact fulfilled the hardware-independence promise of Unix, which was belied when Unix split into incompatible proprietary versions. Users of Linux gain an extra degree of independence from hardware vendors.

On the other hand, Linux does not support USB (Universal Serial Bus) or PnP (Plug-and-Play) devices, though there are active efforts underway on both these projects. Intel is pushing its UDI (Uniform Driver Interface) as a common Unix approach to device drivers, and is trying to get the Linux community to help write the drivers.

Linux also does not support as many peripherals and cards as Windows does. It is still necessary to consult a hardware compatibility list before choosing a new piece of hardware to add to a Linux machine. Doubtless, this issue will decrease in importance with time, as the OS's increasing popularity encourages hardware manufacturers to release drivers (or at least specifications) for it.

For the next year or so, these are likely to remain chinks in Linux's armour. Pre-installed Linux systems with peripherals tested and guaranteed by the manufacturer are the best short-term answer.

References:
HP, the Linux PA-RISC port and the Puffin Group: http://www.hp.com/pressrel/mar99/01mar99e.htm
Sub-$600 PCs from Emachines: http://www.news.com/News/Item/0,4,35322,00.html?tag=st.cn.sr1.dir.
Cyrix reaches beyond the $299 PC: http://www.news.com/News/Item/0,4,34825,00.html?tag=st.cn.sr1.dir.
Linux on a set-top box: http://www.thestandard.net/articles/display/0,1449,4246,00.html?home.bf
Linux on 8-way Intel Pentium III Xeon SMP servers: http://www.newsalert.com/bin/story?StoryId=CnWWPWbKbytaXmtC&FQ=Linux&SymHdl
Linux and Intel's Merced: http://www.crn.com/dailies/weekending030599/mar02dig09.asp
Cygnus GNUPro toolkit for Merced enables Linux to be compiled for that platform: http://linuxtoday.com/stories/5434.html
Linux-USB project mirror: http://www.nv.org/linux/USB/snapshots.html
Linux Plug-and-Play project home page: http://www-jcr.lmh.ox.ac.uk/~pnp
Intel's UDI and the Linux community: http://www.zdnet.co.uk/news/1998/37/ns-5501.html
Linux runs an MP3 music player for cars: http://www.wired.com/news/news/technology/story/18236.html
Linux hardware compatibility list: http://metalab.unc.edu/LDP/HOWTO/Hardware-HOWTO.html

Native Internet support

Linux was born of the Internet, and its Unix pedigree virtually guarantees that it will support all the standard Internet protocols. (Indeed, Linux was perhaps the first OS to support IP version 6.) Linux is a very popular server OS among ISPs (Internet Service Providers) on account of its low cost, reliability, and an abundance of Internet-related software. E-mail, file transfer and network news are available out of the box with any Linux distribution.

The world's most popular webserver, the Open Source Apache, runs naturally on Unix, and is most commonly used in combination with either Linux or FreeBSD. Lots of add-on modules for Apache make it a very powerful solution for web applications. The mod_perl module allows Perl CGI scripts to be interpreted and run within Apache's memory space, rather than starting up the Perl interpreter each time in a separate process. The mod_jserv module allows Apache to use Java servlets. The Java-Apache project builds on this and proposes some very innovative ideas. The mod_php module allows Apache to run HTML-embedded scripts in a Perl-like language called PHP (Hypertext Pre-Processor), a program that works exactly analogously to Microsoft's Active Server Pages. PHP has drivers for every major database and for the OpenLDAP directory server, and is a very powerful tool for web-based applications.

Most importantly, there is a module called mod_ssl, which, when used in combination with a cryptography package called SSLeay, gives Apache 128-bit strength SSL (Secure Sockets Layer) capability, which US-developed commercial webservers are not allowed to export. This can give a website strong cryptographic capabilities for e-commerce, at zero cost.

Many hardware vendors are now selling "thin servers", which are basically small-sized machines running on cheaper RISC chips rather than on Intel's Pentium IIs and IIIs. Obviously, the best OS for non-Intel chips is Linux, because Linux runs on almost anything. Apache is of course the obvious webserver choice. Configuration of such machines is very easy, and is usually done using a browser. Thin servers are very cost-effective for small Intranets.

The move now is towards Application Servers, which use webservers as a front-end but do the bulk of the actual processing themselves. IBM's Websphere application server uses Apache as its front-end.

Lutris Technologies has donated its Java/XML-based Enhydra Application Server as Open Source to the web development community. This is likely to prove a very popular product.

The latest Linux kernel (version 2.2) supports firewall functionality through a tool called ipchains. There are web-based configuration tools for ipchains, freeing a user from having to edit a configuration file by hand. The Squid caching proxy is also a very popular one among ISPs. Mail products on Linux include the venerable sendmail and recent competitors qmail and smail. Mailman is a good mailing list manager written in the powerful Python language. Some vendors have ported Linux onto PCs and are selling them as routers. They provide a much cheaper alternative to Cisco routers. Virtually all databases are available for Linux. Directory servers running the Open Source OpenLDAP software are also here, and support directory replication as well.

A recent announcement for FreeS/WAN, an Open Source encryption software, makes it possible to build secure VPNs (Virtual Private Networks).

On the client side, the Mozilla project is slowly wending its way towards a release of the industry's first 100% standards-compliant browser. Mozilla is the project created by Netscape to manage the development of Communicator after it went Open Source. The greatest achievement of the Mozilla project so far has been the complete rewrite of the browser's Layout Engine, or Rendering Engine. This is called Gecko and fits into a single floppy. Gecko is also available as an ActiveX control. This gives users the flexibility to choose the rendering engine they want in a browser. It is possible to embed the Gecko ActiveX control as a plug-in to Microsoft's Internet Explorer, achieving a completely standards-compliant Microsoft browser with no help from Microsoft! The first company to profit from Gecko, ironically, is not Netscape. NeoPlanet has embedded Gecko in its latest browser/portal, NeoPlanet 3.0. With Gecko being an embeddable plug-in, the current practice amongst web developers to target Netscape and Microsoft browsers whenever they develop web-based applications can finally end. They can work with the guarantee that their applications will be rendered by a single, standards-compliant rendering engine. Mozilla's networking libraries are also being rewritten and are collectively called Necko. Mozilla is an excellent example of code reuse within the Open Source community. It uses the Hungry Programmers' Japhar JVM (Java Virtual Machine) to run Java applets, and incorporates James Clark's expat XML parser. Mozilla promises to be the smallest, fastest and most standards-compliant browser. That should be a refreshing change from IE5's 100 MB disk requirement. Mozilla on Linux clients should give desktop users a fast and "correct" browser.

Linux is an excellent, standard platform for web applications. You can use it to build a complete, secure Internet site, including router, firewall, proxy, webserver, mailserver, database server and directory server.

References:
Apache webserver home page: http://www.apache.org
Enhydra application server home page: http://www.enhydra.com
Firewall configuration tool: http://rlz.ne.mediaone.net/linux/firewall
Firewall-building tool "Mason" licensed under GNU GPL: http://users.dhp.com/~whisper/mason
Squid home page: http://squid.nlanr.net/Squid
Sendmail home page: http://www.sendmail.org
FreeS/WAN news item: http://www.infoworld.com/cgi-bin/displayStory.pl?990421.icfreeswan.htm
FreeS/WAN home page: http://www.xs4all.nl/~freeswan
Mailman mailing list manager: http://www.list.org
Python home page: http://www.python.org
Linux-based routers: http://www.zdnet.com/sr/stories/column/0,4712,381687,00.html
Network Concierge, a Linux-based thin server: http://www.nc4u.com/linux.htm
Cobalt Networks, Inc. Linux-based thin servers: http://www.cobaltmicro.com
Corel Corp.'s Netwinder thin server running Linux: http://www.corelcomputer.com
IBM's "WebSphere" E-commerce software runs on the Apache webserver: http://www.software.ibm.com/webservers/appserv/awb.html
The Mozilla home page: http://www.mozilla.org
NeoPlanet embeds Gecko layout engine in 1.3 MB browser/portal: http://www.neoplanet.com/press_OpenSource.html
Gecko as an embeddable ActiveX plug-in for Internet Explorer: http://www.iol.ie/~locka/mozilla/mozilla.htm
The Java-Apache project: http://java.apache.org
James (Java-Apache Mail Enterprise Server) MailServlet page: http://java.apache.org/james/index.html
ServletCentral website for server-side Java: http://www.servletcentral.com
PHP (ASP-style HTML-embedded scripting language): http://www.php.net
OpenLDAP project home page: http://www.openldap.org
The Hungry Programmers' Japhar JVM: http://www.japhar.org
James Clark's free XML tools: http://www.jclark.com/xml

Interoperability with existing systems

Linux is widely claimed to be able to coexist with other operating systems and even talk some proprietary protocols. Linux can talk SPX/IPX in a Netware environment, Appletalk in a Mac crowd, and even SNA to IBM mainframes. But for most organisations, the most important and relevant aspect of Linux's claimed interoperability is its ability to coexist with Windows machines. Considering that Windows can talk the Unix-native TCP/IP protocol, the ability of Linux to communicate with Windows is no great feat. However, there are two areas where Linux aims to emulate Windows so well that it threatens to replace it altogether.

The first way is by providing Windows file and print services through "Samba", a product which, like Linux, is released under the GNU General Public License. By all reports, a Linux server running Samba emulates a Windows NT server so well that it completely fools Windows clients. Windows workstation users can use their favourite Explorer file manager to manipulate files on the Linux server, even using drag-and-drop! Microsoft had the Samba developers foxed for a while with their NT Domain Security encryption system, but the resourceful bunch soon worked around that. At the time of writing, Samba can let Linux do anything an NT server can do except emulate a Backup Domain Controller, and that capability is reportedly not far away.

Given Linux's ability to scale upto multi-processor, 64-bit machines, Samba gives users a serious way to obtain "NT-like" file servers at levels of power and stability that NT itself cannot currently reach, and to operate a complete Windows network without using any NT servers at all. (As a side-benefit, this also eliminates the need for Windows client-access licenses.) Samba is such a popular piece of software that SGI (formerly Silicon Graphics) is bundling it with its high-end Unix servers.

The second way Linux is trying to emulate Windows is proving to be a lot harder to pull off. The Windows Emulation Project (WINE for short) aims for nothing less than the ability to run Win32 binaries on Linux. This will obviate the need for porting Windows applications to Linux, since they will run "out of the box". Corel is supporting the WINE project, for this reason. They can avoid porting their Windows software to Linux, and can simply have it run with no additional effort. If WINE succeeds, Linux can one day replace Windows workstations just as it can replace Windows servers today with Samba. Some Windows applications, notably games like Solitaire, have been available on Linux for over a year. However, the really complex applications are the ones to watch. It will be considerably more difficult to run Microsoft Word, and such applications are reportedly only 90% compatible at the time of writing. These are precisely the kind of applications where anything less than 100% compatibility is not acceptable, so the task is not easy, considering also that WINE must emulate Windows bug for bug to display identical behaviour.

Linux and Windows can easily coexist on the same network because both speak TCP/IP. So compatibility fears should not stand in the way of Linux adoption. Linux with Samba can also provide tangible value in terms of license savings, better performance and improved stability. WINE is a project to be watched, though at present, nothing usable has emerged.

References:
Linux and Appletalk: http://www.idg.net/idg_frames/english/content.cgi?vc=docid_9-129189.html
Linux and IPX: http://pinkfloyd.student.okstate.edu/~arc/howto/IPX-HOWTO-1.html
Linux and SNA: http://linuxworld.com/linuxworld/expo/lw-wednesday-server.html, http://www.linux-sna.org
Samba home page: http://au1.samba.org/samba/samba.html
Samba on SGI: http://www.zdnet.com/products/stories/reviews/0,4161,394079,00.html
Samba 2.0 release announcement: http://linuxtoday.com/stories/2298.html
High-end Unix servers from SGI come bundled with Samba: http://www.sgi.com/newsroom/press_releases/1998/december/samba.html
Samba - A license to kill Windows NT?: http://www.zdnet.com/sr/stories/issue/0,4537,396321,00.html
WINE project home page: http://www.winehq.com
Corel's support to the WINE project: http://www.zdnet.com/zdnn/stories/news/0,4586,380599,00.html

Inherent Y2K compliance

The year 2000 is an issue of great significance to IT, with many organisations having formal policies against installing software products that are not certified Y2K-compliant. Systems that are not Y2K-compliant can fail because they store dates in a format that only records the last two digits of the year. This leads to the year 2000 being confused with 1900, resulting in all kinds of errors in applications.

Linux and other Unix variants claim to be inherently Y2K-compliant because they record dates very differently. Dates in Unix are internally stored as the number of seconds elapsed since 1st January, 1970. The 32-bit Unix variants store such dates in 32 bits, and this storage will only overflow in the year 2038, not in 2000. 64-bit Unix versions store dates in 64 bits, and this is sufficient for billions of years! Most 32-bit Unix versions will probably upgrade to 64 bits well before 2038, comfortably averting their doomsday.

Thanks to the free availability of Linux source code, the operating system has been independently verified by many to be Y2K-compliant. Any organisation can have the OS audited to its satisfaction before accepting it. However, it must be remembered that this compliance does not automatically extend to the applications that run on it, or to the BIOS of the hardware on which it runs. These need to be separately certified. Open Source applications that run on Linux (e.g. GNU software) can obviously be independently audited for Y2K compliance. For other (commercial) applications, users are forced to rely on the vendors' own guarantees.

(To show how easy it is to upgrade the Unix date format from a 32-bit to a 64-bit field, we need to dip a little into techno-speak. The size of the date field is defined in only one place in any Unix system. This is a variable called time_t. Moving from a 32-bit chip to a 64-bit chip involves, among other unrelated things, merely changing the definition of time_t in this one place from 32 bits to 64 bits. When the operating system is then recompiled, it will use the new definition and store all dates in 64 bits from then on. Of course, moving from a 32-bit chip to a 64-bit chip is not trivial because the very instruction set changes, but this is all that needs to be done about the date.)

References:
Linux and Y2K: http://www.zdnet.com/enterprise/zdy2k/stories/0,6158,2218229,00.html
Y2K compliance status of GNU software: http://www.gnu.org/software/year2000-list.html

"Virus-proof" design

Boot-sector and file viruses have historically been known only in the PC world. Higher-end systems like Unix have two clearly demarcated privilege levels -- call them "user" and "system". A normal user, or a program owned by a normal user, has no privilege to delete system files or files belonging to other users, because such actions require "system" privileges. The administrator of a Unix system, or "super-user", is the only one with system privileges. Therefore, normal users of Unix have limited ability to cause damage to their systems by importing suspect files from elsewhere. That is why we never hear of Unix viruses. (We sometimes hear of Unix "worms", programs that choke systems by replicating themselves endlessly and filling up storage, even if they have no privilege to actually delete or corrupt files. Worms are not as destructive as viruses, and can also be blocked with a little diligence.)

All said, Linux, like Unix, can be considered relatively "virus-proof" compared to the "lightweight" operating systems -- MS-DOS, Windows 3.1, Windows 95, Windows 98 and the Macintosh. The deadly Chernobyl virus that irrevocably damaged hundreds of thousands of Windows 95/98 PCs around the world on April 26th left Linux machines unaffected. (The Mac is affected by a different, but no less deadly, set of viruses. Examples of Mac viruses are INIT-29 and Autostart 9805.)

Windows NT, like Unix, has separate "user" and "system" privilege levels, so NT is in theory as virus-proof as any version of Unix. However, Windows applications, even on NT, are vulnerable to a new kind of virus, the "macro virus", that spreads through e-mail attachments and infects Word and Excel documents. "Melissa" is one such macro virus that was recently in the news.

Computer users whose experience is limited to Windows PCs and Macintoshes could be excused for thinking that viruses are an inescapable part of life with computers. It should be pleasant news to them that there exist operating systems that are inherently resistant to viruses because of a better security design, -- Unix, Linux, and to a lesser degree, Windows NT.

Though Linux at present enjoys a virus-proof reputation, it has largely escaped the attention of virus writers because of its limited market presence compared to the ubiquity of Windows computers. As Linux gets more popular, viruses targeting it will certainly appear. A Linux virus could result in careless users losing their own files, even if system files and the files of other users are unaffected. Personal computer owners should be particularly careful not to log into their systems as the super-user for anything but system administration tasks. Inadvertently downloading viruses while logged in as the super-user can result in wholesale damage just like on a Windows PC.

Moreover, the addition of macro-like programming features to the free Gnumeric spreadsheet program is cause for concern. The developers claim that Gnumeric allows only trusted code to execute in a spreadsheet, and that a Melissa-type attack will not be possible. Unless backed up by a public-key infrastructure that authenticates external code, it is not easy to see how imported spreadsheets with useful macros can be viewed without danger.

So using Linux today certainly puts you in a more comfortable position with respect to virus protection, but there is no place for complacency. Eternal vigilance is the price of freedom.

References:
Report on the Chernobyl virus: http://news.bbc.co.uk/hi/english/sci/tech/newsid_329000/329688.stm
Report on the Melissa virus: http://news.bbc.co.uk/hi/english/sci/tech/newsid_307000/307162.stm
Screenshots of gnumeric: http://www.gnome.org/gnumeric/screenshots

Strong cryptography worldwide

If your company is not based in the US or Canada, and if it's not a bank or financial institution, you cannot get a US-developed hardware or software product with strong cryptographic capabilities for love or money. Even if you are a North American company, you cannot implement a truly secure transnational network (a "Virtual Private Network") linking your various international branches and business partners together. The problem is not technical but legal/political. Most popular commercial software (such as operating systems, webservers and communication software) comes from US companies and is subject to US laws that forbid the export of encryption software that exceeds 56-bit strength. (The policy is aimed at preventing international terrorists from being able to communicate through a channel so secure that even US law enforcement agencies cannot tap it.) But when you know of the Electronic Frontier Foundation's demonstration that cracked a secret message (encrypted using the 56-bit DES algorithm) in just 56 hours using a computer costing just $210,000 to build, you can be excused for being unenthusiastic about the security of products that US companies are allowed to sell you. For this reason, the Indian government has warned against the use of US security software, and may even ban its use altogether.

For a few years now, companies like Germany's Brokat have made a comfortable living selling independently developed strong cryptographic products to customers outside the US and Canada. A large number of German and other European banks have used Brokat's proprietary solutions to legally acquire strong crypto (before the US Commerce Department made an exception for banks and financial institutions, depressing Brokat's business somewhat!). However, these products are not cheap. The artificial scarcity of what are, after all, just (well-known) mathematical algorithms has raised the price of legally available cryptographic software from other sources. But it is not as if you can get a cryptographic "patch" from a source outside North America and apply it to commonly-used US commercial software. US law forbids even cryptographic "hooks" in US-developed software that would allow such patches to be applied. You would need to buy entire solutions from non-US vendors, and this is likely to be both costly and not as elegant as the original standard software would have been with strong crypto. The Wassenaar agreement between 33 advanced countries to restrict the export of products with strong cryptography makes this task even harder.

If you, for example, want to set up a website for secure electronic commerce, you would need to encrypt the communication channel between your customers and your site, so that no prying eyes can tell what business is being transacted as the messages go up and down over the Internet. The standard technology to do this is called SSL (Secure Sockets Layer), pioneered by Netscape. If you are outside North America and are not a bank or financial institution, commercial webservers like Netscape Enterprise Server and Microsoft's Internet Information Server are only allowed to give you 40-bit SSL, which as you know, can be broken fairly easily through a brute-force attack. You cannot get a standard and simple solution that employs "strong" cryptography, at a reasonable price.

The solution to this seemingly intractable problem is delicious in its irony. You cannot buy any such product, but you can get one free. You can download the market-leading, free Apache webserver in source code form from anywhere, including the US, then legally download the popular and free "SSLeay" SSL package (independently developed by an Australian, Eric A. Young) and the Apache "mod_ssl" package from any site outside the US. A small utility included with the mod_ssl package overwrites parts of the Apache source code itself, in effect placing cryptographic hooks in the code to call the SSLeay routines. You then compile the source code yourself to build the secure webserver, a process that is simpler than it sounds. Note that the original Apache source does not contain any cryptographic code or hooks at all. So this solution is clean, legally bypasses US export laws, and gives you a fully standards-compliant webserver with 128-bit strong SSL, which you can use to build an e-commerce solution.

What's more, you can have the SSLeay source code independently audited to satisfy yourself that the cryptographic algorithms have been faithfully implemented with no hidden trapdoors or dilution in strength, something you cannot do with any commercial (binary-only) software. Interestingly, Netscape always uses 128 bits for SSL even in 40-bit strong products. They merely send the remaining 88 bits in cleartext. Without the ability to check the source code and compile it afresh, there is no way to ensure that such surreptitious dilution of strength is not taking place in the "strong" cryptographic products that are available commercially.

This entire issue has only indirect bearing on Linux. However, the Apache-Linux combination is a very common and standard one. Apache runs on all versions of Unix as well as on Windows NT, though at present the NT version is not as stable. So if you fall outside the boundaries the US government has laid down for the legal use of strong cryptography, Apache-on-Unix may be the only way to go to implement (verifiably) secure e-commerce, with Apache-Linux being a very natural solution.

Other strong cryptography products that are free include PGP (Pretty Good Privacy), -- a public-key cryptography package, its GNU equivalent GPG (GNU Privacy Guard) which uses no patented algorithms, and the Cryptix Java classes for free use in Java applications. Also recently announced is the comprehensive FreeS/WAN strong cryptography package to provide secure communications over TCP/IP networks like the Internet. Unlike SSL, which can only encrypt the Hypertext Transfer Protocol (HTTP) traffic between browsers and webservers, FreeS/WAN can encrypt any TCP/IP traffic, including FTP (File Transfer Protocol), which has traditionally been insecure on account of its sending passwords over the network in cleartext form. FreeS/WAN was entirely developed outside the US for obvious reasons, and is the cheapest legal way to implement a Virtual Private Network or Extranet. All these free products work with Linux, and the source code can be audited to your satisfaction.

The best things in life are free, at least as far as strong cryptography is concerned...

References:
The Electronic Frontier Foundation website: http://eff.org/
Indian government warning on US security software: http://www.economictimes.com/120199/lead2.htm
Brokat's website: http://www.brokat.de
Apache home page: http://www.apache.org
SSLeay home page: http://www.psy.uq.oz.au/~ftp/Crypto
SSLeay download page: ftp://ftp.pca.dfn.de/pub/tools/net/ssleay
mod_ssl download page: http://www.engelschall.com/sw/mod_ssl/distrib
(Naming convention: "mod_ssl-2.2.8-1.3.6.tar.gz" means this is the patch for SSLeay version 2.2.8 and Apache version 1.3.6)
Netscape's 40-bit SSL hack: http://www.cs.bris.ac.uk/~bradley/publish/SSLP/chapter4.html#4.4.3
PGP download page: http://meryl.csd.uu.se/~d95mno/PGP.html
GPG home page: http://www.d.shuttle.de/isil/gnupg/gnupg.html
Cryptix home page: http://www.cryptix.org
FreeS/WAN news item: http://www.infoworld.com/cgi-bin/displayStory.pl?990421.icfreeswan.htm
FreeS/WAN home page: http://www.xs4all.nl/~freeswan

Linux's weaknesses revisited

Linux is certainly not a perfect OS, and for quite some time, we have also been hearing about its weaknesses. Let us re-examine them to see how many of them are still valid today:

User-unfriendliness

It is impossible to read an article on Linux written for a non-Unix audience without coming across the phrases "primitive command-line", "cryptic commands" and "arcane syntax". Undoubtedly, users accustomed to the friendly graphical interfaces of Windows and the Mac would reasonably balk at having to type commands in an "arcane syntax". But things are changing fast. There are two graphical desktop environments for Linux. KDE ('K' Desktop Environment) is the slightly more mature one, and the main criticism heard about it these days is that it's too "clean" and "corporate". Gnome is a more fun interface that allows users to customise it ad infinitum. Neither interface is as yet as polished and complete as the Windows or Mac desktops. However, they have developed to their current state in an amazingly short time (See screenshots below). Critics of Linux must remember that the earliest versions of Windows were eminently forgettable, and it was only with version 3.1, appearing sometime in 1993, that Windows became usable. It took more than another 2 years for Windows to achieve its current levels of usability in the form of Windows 95. Given the current status of both Linux desktop projects and their tremendous momentum, it seems reasonable to expect that this argument about Linux not having a friendly graphical interface will wither away by the end of 1999.

(Already, these interfaces have pulled ahead of Windows in some respects. If you delete a program manually, a reference to it still appears on the Windows Start Menu. Gnome and KDE automatically detect the (manual) removal of a program and stop displaying references to it.)


A screenshot of Linux running the 'K' Desktop Environment with a Macintosh "theme"


A screenshot of a Russian Gnome desktop, showing its internationalisation capabilities


A screenshot of Gnome with the Enlightenment window manager, an extreme example of how users could customise their environment.

Besides, to turn the user-friendliness argument around, a command-line is an excellent alternative to a GUI in many situations. Even with an extremely friendly GUI, a user may find certain operations difficult to express with a graphical metaphor, for instance, "piping" the output of one program to the input of another one. The powerful repertoire of commands that can be chained together makes the Unix/Linux command line a very productive environment. Scripting is another very powerful Unix mainstay, an area where predominantly GUI-based systems like Windows and the Mac are notoriously weak. The DOS batch files of Windows are pitifully inadequate compared to the basic Unix shell script, while Applescript comes somewhat closer. Neither can match the breadth and power of Unix's specialised (free) scripting languages like Perl, Python, Tcl and Guile. That may explain why these languages are now being ported to Windows. It remains to be seen whether Windows 2000, with its promised Active Scripting using Visual Basic, brings Windows up to this level.

Ironically, with a graphical environment very similar to Windows or the Mac, Linux's command-line and scripting interface will perhaps soon emerge as a major selling point for advanced users. Windows and Macintosh treat all users alike, irrespective of skill level, and do not allow users to acquire more control over their machines with increasing experience. Unix and Unix-like systems, on the other hand, "scale" extremely well with experience, rewarding advanced users with dramatically greater productivity.

So the argument that Linux has no friendly interface is now clearly untrue. The challenge for Linux now is to develop graphical metaphors for its powerful command-line constructs as well. Piping and redirection through drag-and-drop, visual scripting, graphical representation of the powerful Unix "file" abstraction, and other innovations can push the Linux interface beyond the reach of Windows and Macintosh, because they lack the underlying architecture to support such visual representations.

References:
Gnome home page: http://www.gnome.org
KDE home page: http://www.kde.org
Simple Unix Bourne shell script tutorial: http://www.ocean.odu.edu/ug/shell_help.html
Perl home pages: http://www.perl.com/pace/pub, http://www.perl.org
Python home page: http://www.python.org
Tcl/Tk page: http://www.tcltk.com
Guile home page: http://gnu.internexus.net/software/guile/index.html
An interesting Macintosh-user perspective on Linux: http://www.applelinks.com/warpcore/apr99/wc-8.shtml

Installation problems

There have been many articles in the popular press in recent times that recount in painful detail the travails associated with installing Linux, and these are inevitably contested by Linux supporters who claim it is a breeze. All said and done, it does appear somewhat problematic for lay users to install Linux. Even though Linux does a reasonably good job of detecting all the hardware components on a PC, it does require some enlightened input from the installer. Disk partitioning and mounting of filesystems are relatively advanced concepts, especially for users who are used to the simple drive letters of Windows. With many Linux distributions, the user also has to know the details of the graphics adapter card and monitor in order to provide the information the installation program requires. Installing Linux on an existing Windows machine to gain "dual-boot" capability (the ability to run either OS) has its own traps to watch out for.

Having said this, it must be remembered that users themselves normally never install operating systems on their computers. Operating systems always arrive pre-installed by the hardware manufacturer, whether the machine is a PC workstation or server running Windows, a Sparc machine running Solaris, an RS/6000 running AIX, or something else. It may well be that the toughest OS to install is (say) HP/UX, but the user doesn't know and shouldn't care.

With the availability of Linux computers off-the-shelf from manufacturers like VA Linux Systems, Compaq and Dell, OS installation is now a non-issue. However, those who want to "try out" Linux by installing it themselves on an old box might benefit by enlisting the help of an experienced person.

Linux installation is getting progressively easier, however, and Caldera OpenLinux 2.2 has been found to have one of the easiest installs. Early reports of Red Hat Linux 6.0 say that it, too, has an easy installation procedure. With such trends, Linux's installation problems could soon become a thing of the past.

References:
Fortune magazine's The Dreyfuss Report, on the difficulties of installing Linux: http://cgi.pathfinder.com/fortune/technology/dreyfuss/1999/04/26/index.html
Caldera OpenLinux 2.2 features: http://www.comspec.com/linux/cld/open22.html
Review of Caldera OpenLinux: http://www.linuxworld.com/linuxworld/lw-1999-04/lw-04-penguin3.html
Dell to sell PCs with Linux: http://www.news.com/News/Item/0,4,34036,00.html?tag=st.cn.sr1.dir.
Compaq expects Linux to popularise 64-bit Alpha chips: http://www.news.com/News/Item/0,4,34119,00.html?tag=st.cn.sr1.dir.

Scarcity of applications

Nobody chooses operating systems for their own sake. It's the applications that run on them that matter, and for some time now, critics of Linux have justifiably asked, "Where are the applications?"

To try and answer this, we need to look at two different environments, -- the server side and the client side.

The server side

The point about scarcity of applications was very true around this time last year. The most glaring weakness in the Linux story was the complete absence of strong database products. The only database products available were free ones like mySQL and PostgreSQL. (These have their advantages, of course. The mySQL DBMS is one of the smallest and fastest of its kind, but lacks features like transactions with rollback, which are essential for all but the simplest applications. PostgreSQL is an object-relational DBMS (ORDBMS) whose design underlay the commercial Illustra ORDBMS, which in turn was later incorporated into Informix. It allows for inheritance of tables, storing of programming logic within database columns and is, in general, a very good multimedia database. However, it is not as high-performance or as widely tested as the commercial databases such as Oracle, Sybase, Informix or DB2.)

But then, late last year, all the database vendors jumped on board the Linux bandwagon. By July 1999, all the major databases, with the unsurprising exception of Microsoft SQLServer, are expected to be available on Linux, with varying support and fee options.

After the database vendors, one by one, the large hardware vendors (Sun, HP, SGI, IBM, Compaq/Digital and Dell) revealed their plans to sell hardware pre-installed with Linux. The pace has since only increased.

Internet and web applications have never been a problem for Linux. Sendmail, a free mail transport program that is estimated to handle 70-80% of the world's e-mail, runs on Linux. Linux also has a natural fit with the free webserver Apache, which according to the Netcraft survey, has 56% of the Internet webserver market, with Microsoft's IIS (Internet Information Server) at 23%, and Netscape's Enterprise Server a poor third at 7%. The Squid caching proxy is very popular with Internet ISPs. Java is available for Linux, though it is still at version 1.1.7. The Java 2 port has been completed and is undergoing compatibility testing. Lutris technologies has donated its Enhydra Java Application Server as Open Source.

On the server side, there are very few application categories that are not available for Linux. One holdout so far was ERP, prompting many to dismiss Linux as not yet ready for the "Enterprise". However, SAP soon announced a Linux port, and that bastion fell as well. On the middleware front, BEA is planning a port of its Tuxedo TP monitor client to Linux, and is considering the server component as well. Computer Associates will port its Unicenter TNG systems management environment to Linux.

From the experience of the database vendors, it seems fairly simple to port a Unix version of a large and complex software product to Linux. Linux is a variant of Unix, after all. Therefore, as the Linux market grows, there is no reason why products available on other Unix platforms should not be available on Linux as well. From the viewpoint of applications availability, Linux servers are in a good position.

References:
mySQL website: http://www.mysql.com/
PostgreSQL website: http://www.postgresql.org
Database vendors Oracle, Sybase, Informix, IBM support Linux: http://www.news.com/News/Item/0,4,30360,00.html
Hardware vendors HP, SGI, Compaq, Dell and IBM support Linux: http://www.news.com/News/Item/0,4,31511,00.html
Linux on IBM's RS/6000 and Netfinity servers: http://www.businessweek.com/bwdaily/dnflash/feb1999/nf90222a.htm
Linux on Sun's 64-bit UltraSparc servers: http://www.internetwk.com/news1298/news120898-6.htm
Big guns support Linux: http://www.zdnet.com/pcweek/stories/news/0,4153,1014026,00.html
Compaq expects Linux to popularise 64-bit Alpha chips: http://www.news.com/News/Item/0,4,34119,00.html?tag=st.cn.sr1.dir.
Sendmail home page: http://www.sendmail.org
Apache home page: http://www.apache.org
Netcraft's webserver marketshare survey: http://www.netcraft.com/Survey
Squid home page: http://squid.nlanr.net/Squid
Java-Linux project home page: http://www.blackdown.org
Enhydra application server home page: http://www.enhydra.com
SAP jumps on Linux bandwagon: http://www.news.com/News/Item/0,4,33063,00.html
Tuxedo on Linux: http://www.fi.infn.it/DFS/news-comp.dce/msg00463.html
Computer Associates' Unicenter TNG for Linux: http://webserv.vnunet.com/www_user/plsql/pkg_vnu_nn.homepage?p_story=77351

The client side

The desktop is a slightly different proposition, for a reason we will look at very soon. Desktop productivity applications like office suites are here, of course -- WordPerfect, Applixware and StarOffice. The Gnome and KDE desktops with their bundled free applications will probably make Linux very popular in the price-sensitive market.


The free KOffice suite aims to be a replacement for Microsoft Office and comes bundled with the 'K' Desktop Environment. Shown above is the "KSpread" spreadsheet package, part of the suite.

Perhaps the best showcase example of a free commercial-quality Linux desktop application is the GIMP (GNU Image Manipulation Program), a worthy competitor to Adobe's Photoshop. GIMP packs about 80% of Photoshop's features in 0% of the price, and even has a scriptable interface that Photoshop lacks. A recently-published book, "The Artists' Guide to the GIMP" is a hot-selling companion guide. Organisations designing web page graphics may find GIMP and this book a far cheaper alternative to Photoshop.


The GIMP has proven to be such a popular package on Linux that it is now being ported to Windows (above). The scripting tool Script-Fu is also shown.

In today's climate, a vendor whose roadmap does not include a Linux version looks increasingly out of touch with the market. Two speech-recognition software packages were announced very recently for Linux, -- IBM's ViaVoice and Nuance Communications' Foundation SpeechObjects, the latter as Open Source. However, the one application on everyone's mind when considering a move to Linux is Microsoft Office. More than Windows itself, this is the "killer app" that gives Microsoft its corporate desktop monopoly. If moving to Linux entails losing compatibility with MS-Office, most organisations would choose to remain with Windows. This compatibility is of two kinds. Most corporate desktop users have been trained on the interface and features of the Microsoft products, and there is some understandable reluctance about moving to new products and having to relearn those skills. The other form of compatibility is in file formats. Document formats are perhaps the last stronghold of proprietary technology. Every other category has strong industry-standard alternatives. But industry standard XML is relatively new and currently in no position to dethrone the Microsoft Word and Excel file formats. And indeed, this is a serious issue. Microsoft is known to change its Office file formats with every new release, partly to support new features and partly to shake off competitors.

The Wordperfect Office Suite and StarOffice have very similar interfaces to Microsoft Office, minimising the training effort involved in switching to them. They also claim complete compatibility with MS-Office file formats. Even if this is true, it must be remembered that the next version of MS-Office will again leave them scrambling to catch up.

Microsoft Outlook and Exchange Server are also very popular integrated e-mail products that dramatically improve productivity. They are excellent examples of value-added proprietary extensions to standard protocols, but they carry with them the reality of vendor lock-in. There is no painless way to switch.

In a larger sense, the Microsoft Office lock-in with its attendent forced-upgrade nuisance has occurred in part because of the failure of the user community to demand compliance with a set of industry standards. Indeed, there have been no strong industry standards until recently. However, with the plateauing of the office suite feature set required by an organisation, it is now possible, more than ever before, to call a freeze on features. How many more bells and whistles do you want?

Standardising on the file format of a particular version of MS-Office may be beyond the ability of any single organisation, however, because the policy runs the risk of being unable to handle documents produced by other organisations using later versions. It is an interesting issue that perhaps reflects more on the collective lack of bargaining power of the user community than on any drawback in Linux. Some organisations try to use HTML, RTF (Rich Text Format) and PDF (PostScript Distribution Format) to gain a certain amount of vendor-independence, but the Office products are clearly in a higher league.

The WINE (Windows Emulation) project discussed earlier aims to solve the problem by letting Win32 applications like MS-Office run on Linux without "porting". However, WINE has not yet reached a sufficient level of success at the time of writing to recommend it as a solution.

So, on the desktop, Linux has a long way to go. The applications are there, but the most important one is not. And it will be difficult to break that lock. Users need an industry-standard, vendor-neutral document format to break it. XML is the most credible threat to Microsoft's proprietary formats, and Linux is a good vehicle for XML. As a user organisation, you need to track developments in this space, and throw your weight behind such standardisation efforts, because only that can generate the real competition that will make this a buyer's market and get you off the "upgrade treadmill".

Unviable business model

Besides, software vendors already face an unviable business model, as pointed out in a recent article, "How Microsoft took the 'Win' out of Windows". Independent software developers need to target Microsoft's Windows, because it is the most popular desktop platform, but they soon face competition from Microsoft's own products. Microsoft often "bundles" these products for competitive advantage, and there is a common perception that Microsoft applications are better "integrated" with Windows. This perception could well be justified. Software developers rely on the published Win32 APIs (Application Programming Interfaces) to get their products to run on Windows. But there are known to be many undocumented APIs that utilise Windows more efficiently. Microsoft's in-house application developers are believed to use these APIs to gain competitive advantage over external developers. This is a hot topic in the antitrust trial now underway.

As a user, such a situation may not concern you immediately as long as you get the products you want from Microsoft, but in the long term, monopolistic conditions lead to lower quality and higher prices.

For software vendors, Linux, far from being an unviable business model, offers a second chance to compete by providing a more level playing field than Windows. For example, Corel Computer (now Rebel.com) is making a comeback with WordPerfect on Linux. So Linux is not anti-business. It could just be anti-monopoly.

References:
The KOffice home page: http://koffice.kde.org
Corel Wordperfect for Linux: http://linux.corel.com/linux8/index.htm
Applixware home page: http://www.applix.com/appware/linux/index.htm?&Orig=7
StarOffice personal version: http://www.linuxit.com/pages/html/body_star_office_per_ver.htm
The GIMP home page: http://www.gimp.org
Review of the GIMP: http://webreview.com/wr/pub/1999/03/05/studio/index.html
The Artists' guide to the GIMP: http://www.ssc.com/ssc/gimp.html
IBM's ViaVoice speech recognition software for Linux: http://biz.yahoo.com/bw/990426/ny_ibm_1.html
Nuance Communications gives away FoundationSpeechObjects speech recognition software as Open Source: http://www.newsalert.com/bin/story?StoryId=CnYpKWbWbsfnnmdu2&FQ
=open-source&SymHdl=1&Nav=na-search-&StoryTitle=open-source

XML information: http://www.xmlinfo.com
WINE project home page: http://www.winehq.com

Poor documentation

The greatest software in the world is pretty much useless without documentation. Documentation includes, at the very least, good installation, user and administration manuals, and on-line help for all software products. Development tools must, in addition, have reference manuals and sample code.

One of the downsides to Linux having started out as a programmer's operating system is that programmers require minimal (but highly technical) documentation to understand and improve upon the work of other programmers. Corporate users, on the other hand, are not interested in the software for its own sake, but as a tool to get their work done. The documentation required by them is of a very different kind.

Documentation as a weakness has long been recognised by the Linux community, and there are strong efforts to bring the Linux documentation in line with that enjoyed by commercial systems. The current problem with Linux is not scarcity of documentation, but the overabundance of it, which makes it difficult to search. The Linux Documentation Project is a fairly successful effort to provide a centralised access point to Linux documents. In some ways, a web-based document collection is better than a set of physical manuals, because that is the most dynamic and flexible way to document an ever-evolving piece of software. Linux is an Internet-era phenomenon, and the Internet is perhaps the most apt tool to manage its documentation.

Having said that, the need for physical documents cannot be dismissed. Publishers O'Reilly Associates have an impressive selection of books and manuals for Linux and other Open Source software, and new editions are released fairly frequently. These are mainly of use to software developers and system administrators. Books by independent authors are also available for office productivity software such as WordPerfect. Fortunately, Linux is Unix for most practical purposes, so most Unix documentation applies to Linux as well, and there is plenty of that around.

Users in the English-speaking world have it relatively easy. Most Linux documentation is in English, although the quality is uneven. The GNU Project is seeking to address this through a mailing list of voluntary proof-readers (proofreaders@gnu.org). They hope to maintain, on an ongoing basis, a collection of high-quality documents for all free software. Speakers of other languages sometimes organise themselves on a voluntary basis to translate documentation from English. Linux documentation in German, Japanese, French and Korean, for example, is relatively good.

The new Linux desktop environments, Gnome and KDE, have good on-line documentation as one of their explicit objectives. Both environments support internationalisation, making it possible to provide help in several languages. It is significant that Windows 95/98 comes with only a slim user manual for the operating system. The system is so consistent and intuitive that some initial training and a little practice are sufficient for most users, with on-line help filling in the gaps. Gnome and KDE follow the same model.

The commercial distributors of Linux bundle installation manuals with their CDs, but they don't provide extensive user manuals. Part of the reason is the desire to keep the cost of a distribution low. Manuals will certainly appear if customers express a desire for them and are willing to pay for them. Vendors of commercial software that is ported to Linux do of course provide documentation of similar quality to what they provide on other platforms. There is likely to be documentation available for the overwhelming majority of Linux software, whether Open Source or proprietary, though it may not always be the proverbial mouse-click away.

In short, the situation on the documentation front is by no means dismal, and like Linux itself, keeps getting better. Rather than bemoan the relative scarcity of elegantly bound, printed manuals, users should exploit the ability to browse HTML versions of Linux documentation on-line using their standard desktop browsers. This, in combination with other standard Internet tools like search engines, newsgroups and mailing lists, guarantees access to the most up to date information on Linux software, in a way that printed matter never can.

References:
The Linux Documentation Project: http://metalab.unc.edu/LDP
The Linux System Administrators' Guide: http://metalab.unc.edu/LDP/LDP/sag/index.html
The Linux Network Administrators' Guide: http://metalab.unc.edu/LDP/LDP/nag/nag.html
The Linux Programmer's Guide: http://metalab.unc.edu/LDP/LDP/lpg/index.html
The Linux HOWTOs: http://metalab.unc.edu/LDP/HOWTO/HOWTO-INDEX.html
The Linux "man" (manual) pages for download: ftp://ftp.win.tue.nl/pub/linux/docs/manpages
Linux FAQs (Frequently Asked Questions): http://metalab.unc.edu/LDP/FAQ/Linux-FAQ.html
O'Reilly computer books home page: http://www.oreilly.com

Lack of high-end features

Linux is a relatively new OS developed largely by volunteer programmers. These developers have not so far had access to high-end, expensive hardware (though many vendors are now making large systems available for independent developers to work on). So Linux today has simply not had enough "flying hours" on high-end hardware. Hence, it ranks (along with Windows NT) as a low-to-mid-range operating system, a category where it nevertheless performs quite well.

Many users worry about the scalability of Linux. They fear that if their workload increases, it may not be possible to upgrade their hardware and continue to use Linux. The latest Linux kernel (version 2.2), however, enables Linux to scale almost linearly in performance with additional CPUs, upto 4 processors, though it can run on machines with more processors as well. On 32-bit chips, Linux can use the full theoretical maximum of 4GB of virtual memory (2 raised to the 32nd power), except on Intel chips. (According to a senior kernel developer, it is not possible to run over 2GB of memory efficiently on a PC, so Linux uses a maximum of 2 GB there.) Linux can use 64GB on the UltraSPARC. It supports software RAID (Redundant Array of Inexpensive Disks) for disk fault-tolerance, and clustering through "Beowulf" technology. IBM recently demonstrated Cray supercomputer-like performance using a Beowulf cluster of 17 Intel-based Netfinity servers running Linux, at an astonishing 3% of the cost!

However, Linux does not yet scale well beyond 4 CPUs, has no support for high-availability clustering (Beowulf is a high-performance, not a high-availability cluster) or ccNUMA (Cache-Coherent Non-Uniform Memory Access) architectures, cannot host multiple independent OS "domains" on the same box, or let a cluster of Linux systems appear as a single "image", features that many high-end Unix versions support today. A journalling file system and a logical volume manager are other notable absences.

There are projects underway to address all the above limitations, and the results should begin trickling in over the next year or two. In spite of these current deficiencies, Linux is likely to be adequate for quite a range of application requirements, although it cannot yet match the high-end offerings from IBM, Sun, Compaq/Digital, SGI or HP.

These established Unix vendors seem to have adopted a defensive marketing strategy. They offer Linux on their low-end proprietary hardware, and their own in-house OS for their high-end hardware. Thus, temporarily at least, they project a "complete" product line. It will be interesting to see how long this strategy works. It is an oft-repeated market maxim that "90% of the market is at the low-end". That is what enabled a PC maker like Compaq to grow large enough within a decade to take over makers of larger systems like Digital and Tandem. That is also what has contributed to the marketshare gains of Windows NT against these more powerful operating systems.

These Unix vendors may soon find Linux to be a cuckoo's egg. It could help them sell so many (low-end) machines that they would soon have to make the hard decision whether to continue pushing their own OS at all. Linux could make them realise that hardware is what gives them their margins. In a bid to maintain relative marketshare, each of them may be forced against their will to donate the high-end features of their own operating systems to Linux, moving it up the scale and ultimately replacing those proprietary systems altogether.

This has already started to happen. SGI (formerly Silicon Graphics) have announced that they will migrate many features of their Irix operating system to Linux over the coming year, such as ccNUMA, SMP, advanced memory management, high-speed networking and graphics. They seem to be keeping their promise with t