Unix was one of the first operating systems designed to run on a computer that was not designed to run on a mainframe, which is a huge computer used by multiple people for serious number crunching. Developed at Bell Labs, and later lisenced by them, Unix was the first operating system written in C, rather than being written in Assembly. This made it much easier to modify later on when later features needed to be added to the OS. Unix was designed to be much simpler than the mainframe operating systems, and although it was similar to the mainframe OSes in allowing multiple users to make simultaneous use of a main server via terminals (keyboards and monitors), it was much smaller, and much more customizable. Once Unix became popular, Bell Labs licensed it. Then, various other companies took what Unix had done and attempted to improve or modify it for their own systems. These later developed into the various "flavors" of Unix. Today, Unix-flavored servers form a sizable portion of the servers that make up the Internet. Many Internet Service Providers and colleges use Unix as their staple operating system for dealing with the 'Net1.
Linux is one "flavor" of Unix2. It began as a project of Linus Torvalds; Mr. Torvalds was using Minix, a licensed version of Unix, and he idly began to hack together his own version of Minix, one that had the same functionality, but without needing a license. Once he had the basic, bare-bones kernel put together, he sent it out to the world via the Internet and asked other programmers to take a look at it and make modifications and improvements. He licensed it via the GNU Public License, which allows anyone to use it and to do anything with it, provided that they make their source-code publicly accessible.
By licensing it under GNU, Mr. Torvalds gave the world carte-blanche approval to modify his code in whatever method it felt like, provided the world made the source code available. This gave programmers the necessary information that they needed to correctly and completely interface any programs and applications that they wrote for the Linux OS. When the source code is not available, programmers can have a difficult time getting their programs to work correctly with the OS.
Since Linux's inception, the Linux kernel has managed gone through hundreds of revisions. The result is a stable and reliable operating system.
For this project, I used the 2.0.36 kernel, as the 2.2.x kernel was easily available but was not yet fully tested or pronounced stable. Programmers around the world write patches for the kernel as they discover problems with it, but equally important for the purposes of this project, they write software for it. People all over the world do their best to make Linux a better OS both because they are using it and because they feel like it.
Because so many people are working on it, Linux is a robust and flexible operating system, usable on nearly any PC currently on the market. And because its end-users are the ones creating it, it is being improved all the time. Linux is a product of computer geeks. And since the source code for the OS is readily available, anyone who wants to write a program to run on the Linux OS has access to all the information necessary to allow the program to run successfully. Microsoft has been accussed of concealing some of this information from those people writing programs to run on Windows, so that programs not manufactured by Microsoft will run poorly on Windows machines.
Granted, Linux is not for everyone. It does require more effort of its users than the more commonly used operating systems. Because Linux is designed to be as functional as possible, it is less than friendly to the novice user. The command line where commands are typed in can seem intimidating to users more familiar with mice; Linux requires its users to know what they want to do and how they want to do it. Further, because it makes the majority of its commands are available without any safeguards put on them, it is easy to muck up a Linux box by doing something so simple as typing rm -f . (Do not try this command - it deletes everything.)
Linux is also difficult to troubleshoot at times. Once something has gone wrong through user error or computer error, finding the source of the problem is a painstaking process. Once found, figuring out how to correct those problems involves reading through the endless man pages in an effort to understand what went wrong in the first place.
Historically, Linux was also difficult to install. Installation involved taking a digital "snapshot" of a working Linux system on a machine similar to the new machine, and then "pasting" that snapshot onto the new machine. Since the snapshot would have no way of knowing that it was not on the original machine, it would attempt to function as it had on the old machine. Where the hardware was identical to the old machine, the snapshot would work, and where there were differences, it would not. Debugging these snapshots was a tedious and frustrating process.
This procedure is now changiny. Recognizing a market for the Linux OS, the RedHat corporation began distributing Linux in a much different fashion. Rather than handing out monolithic snapshots of working computers, they developed installers, similar to the Windows and MacOS installers, which allowed users to configure Linux as they set it up. This has made installing Linux on new machines much easier for those users who are less familiar with Unix in general. Even experienced computer users occasionally have difficulty dealing with Linux installations.
Further, RedHat has developed packaged versions of software, called RPMs, which are precompiled to run with their versions of Linux. This saves the end-user the trouble of downloading the software, decompressing, configuring, and debugging the resulting code. Granted, their RPMs are something of a mixed blessing, as it's not possible to set configuration options yourself, but for the majority of software, it's a useful innovation.
For this project, I purchased the RedHat 5.2 installation CDs. This wasn't strictly necessary (and it places it caused me some problems) but it did save me the hours of download time and then the confusion of figuring out how to install an operating system to the hard drive from the hard drive without overwriting what it was reading from. I installed to a 4-year old Compaq Presario 982 with one of the earliest Intel Pentium chips and a different, larger hard drive than the one that came with the computer, as well as an additional 64 Megs of RAM. To make my life easier, at the start of the installation, I wiped everything off this computer, and then installed Linux3.
The following documents are a description both of what I did during the course of installing Linux and its applications, and a set of instructions for other students who wish to install Linux on their computers on the Wellesley College campus.
2 Other flavors that are in use on Wellesley College's campus at the time of this writing are AIX and Ultrix. Common flavors of Unix that are commercially available include Solaris, which runs on computers made by Sun Microsystems, BSD, which was made by Berkeley, and System V which is the culmination of Bell Labs original creation.
3 It is possible to have a dual-boot system using the Linux Loader (LILO) and to have both Linux and Windows installed on the same machine, but it does require some extra work on the user's part.