Summary
This article describes the use of Linux (a free variety of Unix) from the perspective of a person more familiar with the Microsoft Windows '95/NT environment. It explains how the main differences between Linux and Windows would be likely to appear to a knowledgeable end user. The article is intended to provide guidance and encouragement to those who are contemplating making the switch from Windows to Linux for some or all of their computing operations.
1 Introduction
The market for desktop and portable computer software is dominated by Microsoft, for better or worse. The reasons for this state
of affairs are discussed at length in the daily newspapers as well as in more scholarly and financial publications, and
I don't propose to add to this debate.
So great is the domination of the PC software arena by Microsoft that the majority of PC users are not even aware that there is an alternative to Windows as an operating system. For the great majority of PC users, the choice of operating system is between Windows '95 (now Windows 2000) and Windows NT, which is hardly any choice at all.
The purpose of this article is to describe an alternative approach to PC computing based on Linux, a free version of Unix. I am not discussing alternatives to specific Microsoft products -- there are plenty of these -- but a whole new working environment. There is nothing in principle to stop Microsoft producing software for the Linux environment, and many people would welcome such a development, but it does not. This means that a change to Linux means in practice a wholesale abandonment of Microsoft's products.
So why bother? Why abandon the cosy, familiar world of Windows for something totally different that hardly anyone knows about? Those students that have been taught about Unix have been amazed to find that I use it of my own free will, rather than Windows. It seemed to me that there were three sound reasons for doing so. First, Linux and many applications written for it are technically superior to Windows and its applications. Anyone who doubts this should remember that `NT' stands for `new technology', and `new' for Windows means features that Unix had over 20 years ago. Features like multi-tasking, multi-user operation and the ability to take advantage of all the resources provided by the computer have always been features of Unix. There is absolutely nothing new about `long' filenames. It is not a technological breakthrough when programs stop being limited to 640 kB of memory. Second, one of the underlying philosophies of Unix -- using small, highly specialized, programs in combination to achieve complex goals -- is more appropriate for many tasks than the development of monolithic, bloated programs that the Windows environment seems to favour. Third, Linux itself is free, and many good Linux applications are free. As there is no commercial motivation behind most Linux software development, programmers can freely exchange ideas and information, leading to greater interoperability of products.
Before anyone misinterprets my motives, I should point out that I am for Linux, not against Microsoft. I bear the company no ill-will, and if they can dupe the buying public into parting with good money for products that are technically inferior to free ones, then good luck to them. Such is the price of democracy. Also, I should point out that I was not a complete Unix novice when I adopted Linux for my PCs. I was already familiar with Unix (Solaris, in particular) on file servers, Web servers and other important centralized systems, so I did not have as much to learn as would a person whose only exposure has been to Windows.
Although Linux is free, retailers are allowed to charge for the cost of distribution and any products they add to the basic Linux system. Thus there are a number of different `distributions' of Linux in use, as well as different versions of Linux itself. Different distributions all run the same software, but the processes of installing that software may be different. I am currently using a generic version of Redhat version 6 (Redhat Software Inc.), which costs only slightly more than the CD-ROM it is distributed on. A boxed pack with printed manuals costs about £35.
2 Installation
Linux is normally distributed on a CD-ROM, along with a good set of application programs. Many Linux users set
up their PCs so that Linux is installed on one hard disk (or partition) and Windows on another. This means that
both environemnts are available. I have followed this procedure on my home PC, as it used by people other than myself,
but on my portable PC I have only Linux. In either case the installation process is the same. As the Linux installer
is itself a Linux program, it will be necessary either to make a Linux floppy disk to boot the PC from, or to boot from the
CD-ROM. The procedure for making a boot floppy
is well-documented, and in any case some Linux distributions provide a boot floppy as well as a CD-ROM. However, booting
from the CD-ROM is much quicker, and the preferred approach if it works on your
system.
For most people the first sudden poke in the eye will arrive when it's time to organize the Linux file systems. This is equivalent to partitioning a hard disk under DOS or Windows, but DOS and Windows users don't normally do this. For Linux you need at least two partitions, and the textbooks recommend more. I had to apply some trial and error at this stage, as the configuration program was poorly documented and the information presented in Linux terminoloy. For example, which part of which hard disk is `/dev/hda5'? If you're installing Linux on a system on which you want Windows to retain a presence, you should be careful not to make any changes to partitions or disks that contain Windows software. Fortunately the configuration program at least indicates where these are, so you should not have any tradgedies. The worst that can happen is for the installation to fail.
It's worth pointing out that the Linux installation program assumes some basic familiary with general computing concepts, unlike the Windows installers which assume none. On the whole it does not make any descisions on the user's behalf. There is not usually a button to click labelled `typical'. This suits me perfectly; I like to have a say in the way my computer is configured, but it will not suit everyone.
After this point, no decision the user takes is likely to be irreversible. Provided that enough of the system gets installed that it can boot, you can add or remove software components and reconfigure when the installation is finished. That's provided you know what you're doing.
If you are sharing a system between Windows and Linux, the installation process configures the `lilo' boot loader, to give the user the choice of which operating system to start at boot time. It does this automatically if it detects DOS or Windows partitions.
There are some restrictions on where you can install Linux if you have a PC with more than two hard disks (as I do). If you are in this position, I advise that you consult an expert before starting. The consequences of making a mistake here are quite unpleasant, resulting in a computer that will not boot either Linux or Windows.
Installation of the X11 graphical user interface was complicated on the laptop as it has unusual display hardware. This issue is discussed in more detail below.
3 Hardware support
The level of support for major hardware items is far better from Linux that from Windows '95, and somewhat better than
from Windows NT. By `major items' I mean central processors and primary hardware. Linux versions are available
for DEC Alpha, Apple Macintosh and Sun Sparc systems as well as PCs. There are even ongoing
projects to make Linux work on `plamtop' machines like the Psion Series 5 and 3Com Palm Pilot. Windows
NT works on PCs and DEC Alpha, while Windows '95/98 supports only PCs.
It is simple in principle for a software vendor to provide versions of any Linux software for any supported hardware platform, and some do. For example, I have used Nescape's Communicator on PCs and DEC Alpha systems and the different versions look identical, as they should. Of course, if you have access to the source code for the software, you can compile it on whatever version on Linux you are using. Most Linux software is written in C or C++, and a C++ compiler will always be supplied, so this should not present too many problems (see below).
Where Linux still scores badly compared to Windows '95 (and to NT to a lesser extent) is support for peripheral hardware, like printers and sound boards. This situation is improving all the time, but Linux still has a long way to go in this respect. The reasons are clear: the hardware manufacturers have no financial motivation to provide Linux software support for their products, as the potential market is so small. Generally Linux users don't want to pay for anything, let alone device drivers.
At the time of writing, I still have unresolved hardware problems on all my Linux systems. Some of this hardware is unusual, so this is probably to be expected. However, Creative Labs' AWE32 soundboard is not a specialist product, and it galls me that I can't get it to work fully (since I first wrote this article, Linux has evolved support for the AWE soundboards; but to get my radio board to work I had to write the software myself. What a drag).
The rest of this section describes support available for specific peripherals; note that it deals with my particular experiences, and there may well be support available for other hardware not mentioned.
3.1 Displays
If you want to use a graphical user interface, and almost everyone does, you will need to ensure that your PC's display hardware is
supported by Linux. Manufacturers of video hardware do not usually provide software support for Linux, but as most video
adapters are based on a small number of standard components, there is usually no problem. However, if you have very modern,
very high-performance display hardware you may find that Linux will not provide a workable graphical user interface.
You can always get a picture on the screen by telling the system that you have `standard VGA' video hardware, but the
resolution and colour depth will not be useable for any real work. A few companies have found a market niche in
supplying Linux software for high-performance video adapters. Sadly for the end user, this is a specialist market,
and such software is expensive. I found that I had to buy this software (from Xi Graphics) for my laptop PC.
About three months later free drivers became available.
As far as I know, there is no support for video overlay devices, so if you use your PC as a television as well you're probably better off with Windows. I doubt this situation will change much in the future. However, there is increasing support for non-overlay video input devices. There is also an ongoing project to develop software support for `Firewire' video input sources.
3.2 Printers
Linux, like most Unix versions, has largely standardized on Adobe PostScript as a printer control language. Almost
all Linux programs that produce printed output produce it in PostScript, but a few can also produce
Hewelett-Packard PCL commands which are understood by their laser printers and others that
emulate them.
Provided you have a relatively popular printer this reliance on PostScript should not cause any problem, as the GhostScript program will convert PostScript to a variety of other formats very accurately. On the whole this operation is transparent to the user. I use a Hewlett-Packard 6MP without any problems. The format conversion is fully automatic and faultless. I have experienced problems with Epson colour printers.
Infra-red (IRDA) printing is now also supported, but it is still a bit fiddly to set up. However, Linux support for IRDA relies on the infra-red hardware being connected to a real serial port. A number of PCs (especially laptops) don't use a serial port for infra-red, and these will probably not work with Linux IRDA. Another area of bad news is for users of `GDI' laser printers. These were developed specifically for Windows printing and will probably never work with Linux.
3.3 Soundboards
Linux supports all the big-name soundboards like Creative's SoundBlaster range. Most other boards can
emulate one of these products, so you should be able to get some sort of sound out. However, the
more sophisticated features of some soundboards will not be available. In
particular, there is limited support for wavetable hardware. Increasingly,
soundboards are being sold which claim to have wavetable synthesis, but in fact
the synthesis is done in software on the PC. This is a bit cheeky, as software
synthesis puts a heavy load on the CPU, so it isn't really an alternative to
harware. If you don't mind software synthesis, then Linux software like
timidity will provide this for almost any soundboard.
3.4 Disk drives
For hard disks, Linux supports EIDE, UDMA and many SCSI adapters. It also supports the Iomega Zip drive,
including the parallel port version. On my first Linux system, making the parallel port Zip drive work was a
surprisingly unpleasant job, involving re-compiling the operating system. Yes, you did read that correctly.
This issue is discussed in more detail below. More recent Linux versions don't require such drastic steps.
Under Linux the parallel-port Zip drive is considered a SCSI
device, even though it isn't. This means that it is controlled and formatted in the same way as a
SCSI hard disk would be.
3.5 Network adapters
Linux supports a good range of standard network adapters, and a few unusual ones. One my laptop I use a Xircom
Ethernet adapter that plugs into a PCMCIA (`credit card') slot, and which works perfectly with Linux.
Moreover, it was auto-detected on insertion and configured automatically, to my great surprise. There
is some support for token ring and FDDI adapters, but I can't comment on its efficacy.
3.6 Mice
Linux supports bus and serial mice. I think it is unlikely that you will come across a mouse that is not
supported at all, but some trendy features might not work, such as the `scroll wheels' in new
Microsoft mice. Unlike Windows, Linux supports three and four-button mice, and you can emulate the third
button on a two-button mouse by pressing both buttons together.
3.7 Modems
For Internet access I use a Psion-Dacomm modem on the laptop and an `unbadged' 56 kbit/sec modem in the
desktop PC, and both worked correctly first time with minimal configuration. If you have a modem that
does not use the standard `AT' command set it will probably work, but require a good deal
of tinkering first. Watch out for `software modems', especially in laptops.
These devices are not `real' modems; a lot of the processing is done in
software to keep costs down. These probably won't work with Linux.
3.7 Scanners
Linux supports (via the SANE package) most SCSI scanners and a number of
non-SCSI ones. There is, as yet, no support for USB scanners.
3.8 Other hardware
There is a great deal of computer hardware that I don't use, so I can't really comment on the support provided for specific devices. Here is a list of other hardware for which support is provided; I don't claim this list is exhaustive.
4 Main differences between Linux and Windows
This section describes those superficial aspects where Linux is most different from Windows.
Only superficial features require description, as the internal structures of the two systems are
so different that a comparison would be unhelpful.
4.1 Configuration
There are equivalents of Windows' `Control Panel' program that can be used for some simple tasks,
like adding a printer or changing network settings. More sophisticated configuration tasks require
editing configuration files. You will probably need a Linux reference book for all but the most
straightforward jobs. The formats of configuration files depend on the whims of the
software authors, and they are rarely well documented. Causing the system to register the changes
you have made varies in difficulty from nothing (i.e., it is entirely automatic) to re-compiling
the operating system kernel. This last statement is so incredible that it merits
repeating: some configuration changes require that you re-compile the Linux kernel from source
code. (The kernel is the central, essential part of the system.) Actually this is not all
that difficult, when you have installed the necessary software. Nevertheless, it is a daunting
prospect for novices, and one not to be undertaken lightly on a heavily-used system.
In earlier Linux versions it was necessary to re-compile to configure a soundboard.
Now re-compilation is required less often. I had to re-compile to be able to use my parallel-port Zip
drive (now no longer necessary) and a parallel printer at the same time. Once you have figured out how
to re-compile the Linux kernel, you can use the opportunity to remove support from the kernel
for all the standard hardware devices you never use. This will make the kernel smaller,
and thus the system slightly faster to boot.
4.2 Graphical user interface
Despite popular misconception, the majority of Unix users use a graphical user interface for launching and
controlling programs, and to allow more than one program to be visible at a time. The standard
graphical user interface is called `X' (or X11, or `X-Window'). As it is normally configured, the
X system has some superficial resemblance to Microsoft Windows. However, it is important to understand that
Windows is an operating system, while X is merely a program. If Microsoft Windows crashes (as
it regularly did when I was using it) the computer crashes. If X crashes (which is very rare anyway)
the rest of the system will not be affected. In this case it will take about 3 seconds to
re-start X, while the hapless Windows user will be re-booting his computer.
Another difference between X and Windows that has far-reaching consequences is that X itself has very limited authority. It provides rectangular areas of the screen for programs to display their outputs in, and that's about it. It does not provide any facilities for controlling these screen areas, or for displaying controls like buttons. The first of these jobs is the responsibility of a window manager, and the second of a widget library. There are many different window managers, and these dictate the `look and feel' of the user interface. Linux has a window manager called fvwm-95, which provides a user interface very similar to that of Windows '95. You can instead use fvwm-2 or twm which provide more `traditional' Unix screens. Most Linux users now use KDE, which is a very sophisticated system, with a range of integrated utilities, rather like Windows. The important issue here is that the look and feel of the Linux user interface is highly configurable, whereas with Windows it is fixed.
The X user interface does not impose anything on individual programs either. So if a program wants to display a button or a menu or a list box it will use a widget library to do so. And, as there are several different such libraries in use, different progams have slightly different user interfaces. This is totally different from Windows, in which Microsoft has specified in advance exactly what a button will look like and how it will behave. There are advantages and disadvantages to both approaches.
Configuring the graphical user interface in Linux is not the `drag-and-drop' operation that it is in Windows. It requires editing one of many arcane configuration files. While this is very much more flexible, it is not a task that a casual user would want to undertake. More modern window managers like KDE are starting to provide menu-driven graphical configuration tools. Personally I find KDE too much like Windows '95 for me to be entirely comfortable with it, but this again is a matter of taste.
4.3 Command line
Despite the presence of a graphical user interface and an increasing number of applications that use it,
Linux users place much more reliance on the command prompt than Windows users. Many common
operations, like copying, moving and delete files are usually done using commands.
Why is this? It's not as if there aren't graphical utilities for doing these jobs, because they are
there in profusion. I think that Unix enthusiasts see a graphical user interface as an optional extra:
there to be used when it will be helpful, and ignored when it won't. In any case,
this increased reliance on the command line means that the command line itself, and command line
programs, are much more powerful than they are in Windows. The standard command line allows commands
to be edited, and previous commands to be recalled. It will also try to complete a filename if
the user types part of it. None of these features is difficult to implement, and I have always been
surprised that Windows '95 never had them.
Some of the standard Unix command line utitiles are extremely powerful, and when used in combination can do some fairly amazing things very quickly. This is central to the Unix ethos: rather than write a program for every job, Unix developers would rather provide a range of simple, general-purpose programs that can be used in combination. It requires considerable knowledege and experience to be able to take advantage of this flexibility.
4.4 Security Linux is a true multi-user system. Every user must have a separate identity, and will have a separate work area for files. The Unix security model is simple, and open to abuse in large systems. However, it is ideal for a personal computer. Every file has an owner who has complete control over it. Other rights can be granted to a group of individuals of which the owner is a member, and other rights (or none) to everybody else. The user called `root' has complete access to everything. When you first install Linux you will have only one user, `root', but you should create at least one more as quickly as possible. You should never work as `root' unless you are configuring the system or installing new software. By doing this you limit the extent of the damage you can cause if you make a mistake. An ordinary user will not have access to system files, or be able to change any hardware settings. Most PC users find this a bit odd at first, but it soon becomes familiar. When using Windows '95, every user is `root' (i.e., there is no restriction on what a user can do) and this now makes me uncomfortable. I am suggesting that you have at least two user IDs on your Linux system, even if you only ever use it yourself: one for day-to-day use, and one for system maintenance.
Windows NT has a very sophisticated security model, but most users of desktop computers do not take advantage of it. Specifically, they use the same file structure as Windows 95 or DOS where anyone can do anything to any file.
4.5 The file system
It has already been pointed out that the Linux filesystem enforces the specific ownership of files. Another notable difference from Windows is the absence of drive letters. Different disk drives all form part of the same hierarchical directory structure. The location of a file on a particular disk is invisible to the end user. The same applies to removeable disks. These also appear as ordinary directories. Traditionally the directory `/mnt/floppy' corresponds to the floppy disk, `/mnt/cdrom' to the CD-ROM, etc. This to me is no better or worse than using drive letters, it's just different.
However, the differences become more pronounced when working in a networked environment. In this environment the different directories may correspond to completely different computers. This also is for integration; in a complex networked environment the end user should not have to be concerned with the physical location of his or her files.
If you have to share data with a Windows system, you will be pleased to know that Linux fully understands the DOS and Windows '95 filesystems. This applies both to fixed disks and to removable disks (e.g., Zip disks). Naturally the converse is not true.
5 Application software
Linux users have access to a huge range of software, and many of the better programs are free. Here are some examples.
5.1 Software for office tasks
By `office tasks' I mean day-to-day applications that are likely to be used by most people, for non-technical jobs. This type of software is typified by Microsoft's Office suite of programs, which contains a word processor, spreadsheet, presentation graphics program and -- in the `professional' version -- a database.
Because Microsoft Office has such a large share of the market, file compatibility with it is probably an important issue when choosing an equivalent Linux product.
5.1.1 Application suites
Probably the most widely-used office application suite in the Unix world is Applix Inc.'s Applixware (a Linux version is distributed by Redhat). It is a commercial product, but competitively priced against the Microsoft equivalent. The full installation is similar in scope to the Microsoft product, needing almost 300 Mb of disk space. However, installation (from CD-ROM) was trivial: it required the issuing of one command, and took only a few minutes. The only decision required of the user was whether or not to install clip-art. Although the installation process flagged up a few potential compatibility problems, Applixware works as expected on both my desktop and portable PCs.
Applixware contains a word processor, a presentation graphics program, a picture editor (essentially the presentation graphics program with only one page), a spreadsheet, an e-mail program, and an HTML (Web page) editor. I have used all of these extensively except the e-mail program (I use Netscape mail) and have been perfectly satisfied. All the Applixware components are interoperable, and have macro programming support if you need it.
The sorts of facilities offered by Applixware are similar to those offered by Microsoft Office, with a similar user interface. To be fair, the Microsoft product is slicker, with more trendy features, and its keyboard shortcuts for common actions make more sense for a PC user. The keyboard actions in Applixware are configurable (as is everything in the Unix world), but the default settings are rather odd. For example, the 'end' key does not move to the end of a line in the word processor. These are trivial problems that are easy to fix (when you know how), but it would have been better not to need to. Such problems exist because Unix in general (as opposed to Linux in particular) is not dominated by the PC. Some machines running Unix do not have an 'end' key on the keyboard, so it could hardly by a default.
Although stable, Applixware is quirky and unaccountably lacks certain features, which makes it even more like its Microsoft competition. Applixware is claimed to be able to read and write files in Microsoft Office formats. In pratice I have not found that it is able to do this well enough to be useful. However, the Applix word processor will read and write RTF files, and so can Word, so some degree of interoperability is possible.
Other Linux application suites include StarOffice and Cliq (from Quadtratron).
5.1.2 Spreadsheets
A popular commercial program is XessLite from Applied Information Systems, which is now available as a shareware distribution. There are a number of free spreadsheet programs, of varying degrees of usefulness.
5.1.3 Document preparation
The application suites described above contain perfectly adequate `WYSIWYG'-style word processors. These can do all the standard jobs like incorporating tables and figures, and support a good range of fonts. However, my experience is that Unix enthusiasts are more concerned about typesetting and style than most Microsoft Word users. WYSIWYG is not as important in this environment as the style and quality of the final printed result. The `standard' systems for document preparation in the Unix world are TEX and LATEX. These are both based on markup languages, where plain text is interspersed with formatting codes (rather like HTML in Web pages). For those people that have the patience and enthusiam to learn these systems, the final results can be outstanding; such documents make their Word equivalents look extremely ugly. However, it has to be said that most casual users will not have the time to learn the subtleties and complexities of these typesetting systems. For my first few months with Linux I resisted making the conceptual leap that would be required to abandon the familiar WYSIWYG word processing environment. Unless you work on large, complex documents every day -- as I do -- I suspect you would not find your effort rewarded by doing this.
There are a few systems that provide graphical front-ends to LATEX, such as `LyX', but I can't comment on these.
5.1.4 Presentation graphics
Apart from the components of application suites, there seem at present to be few presentation graphics programs of the `PowerPoint' type. There are not even that many good basic diagram editors. For producing line drawings and charts, I use the `Graphics' component of Applixware.
5.2 Networking and the Internet
Linux is well suited to Internet operation, both as a client and a server. The standard Redhat distribution contains Netscape Navigator and Communicator, which provides Web browsing, e-mail facilties and access to Usenet newgroups. There is also an HTML editor. All the traditional network clients are present, as you would expect from Unix, including FTP and Telnet. Other Web browsers and e-mail clients are available as well.
Where Linux really scores over Windows is its ability to act as an Internet server as well as as a client. A Web server is provided in the standard distribution, and all Unix systems have servers for FTP, Telnet, DNS and the other standard protocols. No configuration was necessary to use any of these.
I was pleasantly surprised that I could get access to the Internet from my laptop via both a local area network (Ethernet) and a dial-up connection using a modem. Both of these are self-configuring in that appropriate IP numbers and gateway addresses are set automatically when a connection is established. It is fortunate that configuration was so straightforward, as most Internet service providers appear unable to give any guidance on configuring Linux systems to use their services.
5.3 Databases
Linux has excellent support for large, corporate database services, and relatively poor support for simple single-user applications. If I wanted to construct a simple database to catalogue, say, my CD collection, with a nice graphical user interface, I think I would be out of luck. There is no support for this type of job, except by writing a program from scratch. (Of course there are CD database programs around: building them seems a favourite pastime of novice programmers; the problem is that there are no general purpose simple database programs. Please tell me if I'm wrong about this). The simple form layout facilities provided by Microsoft Access seem to have no Linux equivalent, which is a shame.
On the other hand, there would be no problem implementing a mutli-user relational database server. Linux is supplied with the Postgress database server, a full implementation of an SQL server for `mission critical' applications. It also has lightweight SQL servers for less demanding applications (e.g., not requiring roll-back facilities).
5.4 Multimedia
There are numerous facilties for recording, playing and editing sampled sound and MIDI music data. The ImageMagick set of programs provides for editing, processing and converting bitmap images. All of these are available free of charge. I am not aware of any general-purpose multimedia authoring packages like `Director' or `Toolbook', either free or commercial. Nor are there any facilities for recording or editing video clips, but there are MPEG playback programs.
5.5 Software development tools
The Redhat Linux distribution is supplied with development software to support a variety of different programming languages including C/C++ and Java. There is also support for what I consider more `exotic' languages like ML and Prolog. These are all free of charge and fully featured. There are some restrictions on some of these programs' being used to develop commercial software.
6 Conclusion
Linux is free, and many of the better application programs for Linux are free. Because there is little real money to be made from Linux software, no organization is interested in dominating its development. As there is no central control over the way that Linux develops, there is much less uniformity in the user interface than is obvious in Windows. There is also little or no interest in extending Linux in such a way that it will appeal to untrained, casual computer users or their employers. Such users have little or nothing to gain by adopting Linux in favour of Windows. In fact they have something to lose, namely the ability easily to exchange document files with the rest of the Windows-dominated world.
However, for the knowledgeable computer user whose needs extend beyond Web browsing and typing letters, Linux has certain advantages over and above the obvious financial one. Although Linux has both deep and superficial differences from Windows, it is not different enough that a skilled Windows user should be deterred from trying it.
Links
Applied information Systems (http://www.ais.com)
Applix Inc. (http://www.applix.com)
Lyx (http://www.elec.uq.edu.au/~rae/LyX.html)
Microsoft Inc. (http://www.microsoft.com)
Netscape Communications Inc. (http://www.netscape.com)
Quadtratron (http://www.quadratron.co.uk/)
Redhat Software Inc. (http://www.redhat.com)
Xi Graphics Inc. (http://www.xigraphics.com)
©1994-2006 Kevin Boone, all rights reserved