Why Linux?

There are many reasons that I use Linux. For me, it is a superior operating system. When I first got this computer, it came with Windows Millennium. It was horribly broken. It crashed all the time. I was well acquainted with the "blue screen of death". About a third of the time, when I booted the mouse wouldn't even work right. It was a plain, standard mouse. I got fed up with it and decided that Microsoft was not the right way to go. I had used several of their operating systems and they never seemed to work for me. I asked my friend who had been examining different operating systems lately and came to the conclusion of trying Gentoo.

First, I downloaded Knoppix to make sure that Linux had all of the drivers and would generally get along with my computer. It did. Sound worked and everything. I especially liked the BB demo with graphics rendered as text (AsciiArt). Later, I downloaded the Gentoo installation CD and tried it. They had very careful instructions to guide me through the installation process. It lets you set up the entire system exactly the way you want it and compile programs so they are optimized for your specific CPU. The installer impressed me. Like Knoppix, it is a Live CD, meaning that it contains an image of a full operating system. This means that you can do anything that you usually do right from the installer. You can browse the web and download files. On a separate occasion, I have even watched movies with mplayer from the Gentoo install CD (just because I can). That sure beats installers for other operating systems that I have seen. For my initial installation, there were some minor problems, but I got fast help from the Gentoo message board that allowed me to finish the installation properly. Everything worked, except for writing CDs and 3D acceleration. I don't use either much, so that didn't bother me. (Both problems fixed themselves automatically when I later updated to Linux 2.6.)

Upon using Linux, I found many things that I liked about it. It annoys me how Windows, by default plays different sound effects all the time for no real reason. I don't care that my roommate logged out. I don't want to know that a random program made a message box in the middle of the night when I am trying to sleep. I had always set my computer to sound profile: silent under Windows. I was happy to find that, by default, Linux had no annoying beeps or boops except for the bell character, which I quickly disabled. Also, Linux had no annoying spyware or advertising everywhere. There were no "Try AOL for free!" icons or pop-up windows or anything. (The only exception I have come across is that if you try the non-free nvidia drivers, you will get extra screens with the nvidia logo on it.) Each program just does what it is supposed to and gets out of your way. There are no hopping icons attracting my attention away from work.

A main reason that Linux can be attractive to others is that the cost of obtaining it is negligible. (My economics teacher taught us to never use the f-word: free.) All it takes is to download the image, put it on a blank CD and install it. To make downloading faster and easier on the server, many sites even allow downloading using the new BitTorrent protocol. As a college student, I didn't have much extra money. The price of Linux is one that I could definitely afford.

Furthermore, I later found out that Linux was free in another sense. Like other pieces of software, it is obtained with a license. (Not to be confused with a EULA.) Specifically, it uses the GNU General Public License version 2. It says that you can use the software as long as when you distribute it, you make the source available as well. This means that the software can be changed by anyone who uses it. You can make custom versions for whatever you need. This makes it enormously flexible and allows natural selection to improve the software more directly. Furthermore, the software cannot be made proprietary because the source must be made available to anyone who obtains the software.

Under Windows, I had a big problem obtaining useful software. Windows can do whatever you need, for a price. Need to write a CD? Download Nero. Need to edit images? Download Adobe Photoshop. It is excellent software, but it is also expensive. Many people download both illegally because they want to carry out either function but are not willing to spend that much money to do what their computer is supposed to be able to do in the first place. Furthermore, if you want to use a CD image, you need to download Daemon Tools. Microsoft Windows, on its own, can't do much. It relies on external software to patch these omissions. Linux can do all of this in the first place. To write a CD, there is cdrecord, cdrdao, Gnome CD master, K3B, and many others. To edit images there is the Gimp and, for batch processing, ImageMagick. To examine a CD image, it is as simple as running mount. Most of these programs come with any Linux distribution. It has an enormous software that comes with it that is FREE and comparable and in certain cases superior to the commercial software. Instead of infringing on copyrights, I can accomplish what I need to legally and for free.

An interesting feature of Linux that does not seem to compare to any other operating system that I have used is that most distributions have some form of package manager. It manages what software is installed on the computer. It sees what software it relies on and automatically makes sure that it is already there and updates the software as updates become available. Instead of each program having its own auto-updater wasting your time and pestering you, the package manager can handle it. Furthermore, instead of having software complain about needing DirectX 9, for example, the package manager will automatically try to install it for you or tell you that it can't. This is much easier than having each program try to do this for itself in a slightly different and incompatible way. I hope that other operating systems adopt a package manager. It is amazingly convenient and useful.

Another useful facet is virtual desktops. Instead of being confined to the area currently visible on your screen, you can use virtual desktops to make as much space as you need. You can keep certain programs in each space and quickly switch between them. I find it much more useful than Apple's Exposé (which I always seem to trigger accidentally). Especially when I am going back and forth between groups of programs, I can just put the different groups on different virtual desktops and switch between them with a key press.

Once Linux is installed and configured, it is incredible stable. Crashes are very rare. Most of my problems have come from power outages and not software. With Windows, I frequently had to reboot the computer. I realize that newer versions of Windows have improved this, but I strongly doubt that it is at quite the same level yet. With Windows, you need to reboot almost every time you install new software. I never figured out why, but I conjecture that it has to do with file locking. Windows has a really annoying system for locking files. It always gets confused and thinks that a file is in use and prevents access to it. In Linux you can move and rename files while they are in use and not cause any problems. You can update software while it is running and everything is fine. You do not need to reboot afterwards. Usually you don't have to do anything. If it is a service, you only have to restart the service. In Windows, people simply expect it not to work and will reboot it all of the time just to be safe. There is no good justification of that.

Windows needs extra maintenance to keep working. You must remember to defrag it every so often. Linux keeps its disks defragged automatically. Every so often Windows gets so messed up on its own that it is easier to reinstall it then to try to fix the problem. I have a friend who reinstalls every 6 months just to be safe. I have never had to reinstall Linux yet. Linux is very stable.

There are standards for many different things, unfortunately they are not followed as often as they should be in my opinion. In Windows, Internet Explorer is the default web browser. There are standards for how HTML should be rendered. IE does not follow them. For anyone using IE, I strongly urge you to use FireFox instead. It, along with other web browsers adhere much more closely to the standards. Similarly, Microsoft has a word processor and office suite called Microsoft Office. It has its own format that is not compatible with anything else. Other word processors, such as OpenOffice.org, AbiWord, and KOffice support a standard format known as OpenDocument. Everything would work a lot easier if I had to stop wasting so much time thinking about formats and converting. It is in our interests to adhere to the standards. Linux follows them. Windows doesn't.

Linux supports many different file systems. For most people, that does not mean much. It is more useful than it sounds at first. You can use whatever filesystem meets your needs. If you want a plain filesystem, there is ext2. If you need journaling, you can use ext3. If you have many computers on a network, you can use NFS. If you want a really modern filesystem, you can use ReiserFS. If you need to share with Windows machines, there is SMB. If you need to distribute the filesystem over several machines, there is Coda. Often, you need to get files off of a disk that was used by another machine. If it was Windows, it was probably NTFS or vfat. If it was a Macintosh, it was probably HFS+. Linux supports all of those filesystems out of the box. Most of the others only support a fraction of those. With supporting standards and other operating system's filesystems, it is an excellent tool for interoperating between diverse machines.

Linux is useful on diverse types of machines. I have mostly been talking about it on the desktop. It can also be used on embedded devices with limited resources and on servers. Linux need not be graphical. It can be run in plain text mode. This is very useful if a misconfigured driver or bad video mode has ruined graphical mode. You can just tweak it from text mode and restart X to get graphics back. You don't even need to reboot. If it is acting as a server, you probably don't want graphics support at all as there is no use for it. However you want it, Linux can do it.

I am concerned about my privacy. Linux comes with many tools to help keep my private information private. It has SSH which allows me to securely connect to my computer from anywhere in the world across the Internet. I can grab files or run graphical programs with X forwarding. Anyone in between the remote machine and mine can't see any of it because it is encrypted. This is immensely useful for when I am somewhere and realize that I forgot a file that I need for a presentation or that I want to tell my computer to do something so it will be done by the time I get there. In this way, Linux seems to be more "Internet ready". If I have some personal information, I can encrypt that as well using the GNU Privacy Guard. It can encrypt any file as well as sign it so people know that it is from me. There is also an extension that Mozilla has, EnigMail which integrates GPG with the e-mail client. That way I can effortlessly communicate with people and no intermediate person can know what either of us is saying. If that is not sufficient security, Linux supports mounting a disk partition that is encrypted. That way, you can put ordinary files there, but then no one could read any of it unless they knew the key for decrypting the contents of the drive. Even if your computer was stolen and taken apart, they would not be able to read anything from the partition.

One of Linux's greatest strengths is the ability to automate tasks. While most operating systems feature some way of doing this, I never found any of them very accessible. On Linux, there is a command to do pretty much anything you can think of. You can play a movie, play it in an infinite loop, convert the movie to another format, write a CD-R, turn off, reboot, lock the computer, encrypt a message, schedule a message to be sent, eject the CD tray, find the end of a log, load a device driver, play a sound, connect to a remote machine, upload files, download files, kill a misbehaving program, create a nested X session for some graphical programs to run in, check what hardware is connected to the computer, change the CPU clock frequency, and many other things. This allows you to tell the computer to do many things for you. For example, I have a script that once a week, extracts my financial information from my database, encrypts it, and uploads it to a remote location so I will have it even if my computer is destroyed, but other people can't read it. My computer sends me reminder e-mails to take out the garbage. My friend had a script that monitored his CPU usage and would increase the CPU clock frequency in his laptop when it was being used at maximum, then lower it again when it was no longer necessary. Of course, it could also check the state of the battery and decide not to waste power with a higher clock frequency. The power of the scripts is simply awesome. Combining this with the fact that the source code is available and you get a system that is amazingly flexible and powerful.

Of course, there is a downside as well. The largest shortcoming of Linux is the lack of driver support. Because many hardware manufacturers will not or cannot release the hardware specifications, there is not drivers for every piece of hardware that you might come across. Most older hardware is very well supported, but only some of the newest is. This should be taken into account when using Linux.

If any of this appeals to you, I urge you to try Knoppix. It can be run straight from the CD and does not need to be installed on the hard drive. It lets you try it out and see if it agrees with your computer's hardware. You will instantly have a fully working Linux system. The hardware detection is also really good. Linux is secure, scriptable, stable, flexible, tweakable, standards-compliant, and interoperable. That is why I use Linux.