Linus Torvalds Explains It All For You

This marks the 1,419th time I have attempted to write an explanation about Linux for my non-technical friends, and I'm already off to a bad start. Each time I get into such a pedantic overdrive that I feel compelled to explain the background of every term, and the background behind each background, until I realize that I'm explaining how electrons work and I have to erase it all and start over.

RIGHT NOW, I want all computer professionals to leave. Look, I already know that much of what I'm about to write is horribly oversimplified, but that's the point. If I say something like "The operating system is the first program that your computer runs", don't get all over me about the BIOS and the bootloader because none of that stuff matters in the big picture from the end user's point of view.

Let's get the most important question out of the way first: How do you pronounce "Linux"? Well, the inventor is from Norway and in his Norwegian accent he pronounces the "i" as a long "ee" sound, "Leenux". We Americans, always quick to tell the rest of the world how to pronounce their words, shorten that to rhyme with "win", so most folks, at least in the States, say "Linux" to rhyme with "Win Tux" (Tux is the penguin mascot who represents Linux).

Linux is an operating system. Everything your computer does, from putting the red nine on the black ten to playing that video of dancing squirrels to making sure a little arrow moves around the screen whenever you move the mouse, is a computer program. Someone, somewhere, had to write instructions that said "when the mouse moves in this direction, draw the arrow HERE on the screen" - now imagine dozens, hundreds of those instructions for everything your computer has ever done, and you get the idea of how much work went into selecting exactly the right shade of blue it displays with an error message just before it freezes up and you lose all your work.

But I digress (see, I told you that would happen). An operating system is just another computer program, but unlike the programs that respond to what you do, the OS serves silently in the background, making the hardware attachments all do their jobs. The OS is the first program that runs when you turn on your computer. It decides how all the other programs are going to move from their permanent storage locations (the disk drives) into the computer's brain (memory), it makes sure that instructions you type go from the keyboard into the program that is waiting for your input, and so on.

Microsoft Windows is an operating system. On desktop and laptop computers, it's practically owns the world... but it is neither the first nor (arguably) the best operating system. Microsoft just has better marketing, and in the past 25 years have gone from being some obscure alternative to the only operating system most computer owners ever hear about.

But long before Microsoft, the nerds at Bell Labs had an operating system called UNIX, and through a long history of license transfers and expired patents and legal decisions that I won't bore you with, a college student in Norway named Linus Torvalds was able to write a very tiny version of UNIX for his own amusement to run on a cheap old desktop PC. His strategy for taking over the world was much different. Where Microsoft used lawyers and trade secrets and billion dollar advertising campaigns and highly paid specialist programmers, Linus just posted a message announcing his new OS and asked if anyone wanted to help make it better. Since that announcement appeared in 1993, Linux has gone from having one programmer and a few dozen users to having thousands of contributing programmers all around the world, and millions of users. And now that it's easier to use, it's not limited to bespectacled geeks; Linux can be found in elementary school classrooms, rocket labs, government offices, handheld PDAs, and grandmothers' home systems.

I must stress, Linux and Windows are not interchangeable. You can't turn on a Linux computer, put your favorite Microsoft game CD in, and make it run. It's like choosing either a Diesel engine or a gasoline engine for your car; once you buy the engine it would be painfully expensive to change to the other one.

Why not stick with Windows? Ahhhh, the debate of the century. First I'll make the sales pitch for Linux, then I'll explain why you might NOT want to use it, and then you can hopefully make up your mind with all the information at hand.

Linux is open source. Microsoft Windows, most other programs from Microsoft, and most other programs written to run on Windows, are written by programmers paid specifically to write those programs, and you have to fund their paychecks by paying for the programs. If you want to know more about how that program works, you can't see - it's like an appliance that says "NO USER SERVICEABLE PARTS INSIDE". Open source means that anyone can look inside and offer to help make it better. Linux itself allows this, and nearly every program written for Linux is also open source. Since I know a little bit about programming, I can (and have) customize a program to suit my particular needs, or contribute my changes to the project owner for inclusion in the version that everyone else downloads. Advocates argue that this provides a continual improvement with many hands and eyes catching each other's mistakes; skeptics argue that there is no accountability, and without careful supervision you run the risk of idiots making the program worse, or villains deliberately corrupting the project as an act of vandalism.

Linux is also "free as in beer", as some enthusiasts like to say, meaning that all the work on the project is done as an unpaid side hobby by people who just like sharing their knowledge for the joy of community work, and you don't have to pay a dime to benefit from that work. So the first reason people have for switching to Linux is when they find out it's going to cost $700 to get the latest version of you-know-what, or maybe even pay an annual license fee to keep it going after the initial purchase.

Linux is more secure. Because of the way Linux manages access to essential files and communication ports with the computer's hardware, viruses are almost nonexistent in the Linux world. At its peak in 2006, the Apache server for Linux held nearly 80% of the market share for web servers against Microsoft's less than 20%, although the two are gradually approaching in the middle the past few months. System administrators know all too well the headaches of maintaining a Windows server, but they can't convince "Joe End User" (which includes management with control of the budget) to switch to the more secure Linux servers. There's a good chance that the setup screen for your wireless router is running on Linux.

There are Linux versions of (nearly) everything you need. Tired of paying an arm and a leg every time you upgrade your office suite just so you can update your resume or write your Aunt Fanny a letter? Try OpenOffice - you can even install a version written for Windows and get used to it, then install the Linux version and keep all your documents. OpenOffice is also able to read documents written for That Other office suite, and save documents in the other format so you can send files to your less enlightened colleagues. There is also a much better web browser (Firefox), a much better movie player (Xine) that won't nag you about language restrictions, as well as photo editors, music organizers and players, CD and DVD burners, music studio kits, language tutorials, website developers, and every programming language you could ever use.

Linux is more modular, giving you more control and choice over what it does. Suppose you needed a computer that did nothing but respond to your typed commands, with no mouse activity or graphics? You can't install Windows without the desktop! But you can do exactly that with Linux, because the kernel (the part that talks directly to the hardware) and the graphical user interface (GUI) are separate programs. If you do want to use a GUI, you have several choices that use as much or little "eye candy" as you want, so your computer doesn't get bogged down drawing so many cute pictures that it doesn't have time to actually do any useful work.

Linux provides choice almost to excess. There is no single "brand" of Linux, but rather hundreds of different "distributions" whose owners each had different reasons for choosing one GUI over another, one installation method over another, etc. Some distros are more suited for the nontechnical user who just wants it to work automatically, and others are better for propellerheads who like to fine-tune the settings to make the best use of their specific hardware.

Wow, so all this stuff is FREE? What's the catch? Sadly, there are several. First and foremost, you can't play those games you love on a Linux computer. Remember my Diesel vs. gasoline analogy? A game is written in a language that communicates with one or the other, but not both. Linux zealots will insist that there are many good games, high-quality games, written for Linux, and there are... but those aren't the games YOU play. If you want to play Sim This or Shoot That, you need access to a Windows box.

Also, if you already have Windows on your computer, there is no place to put Linux. With sufficient space, you can in theory use a disk partitioning tool that can safely put Windows and all its programs in one part of your hard disk and free up the rest for Linux, but you can run into real trouble if you accidentally repartition the wrong area - you could lose everything you own in seconds. A better choice is to take out the hard drive, put it in a safe place, and put in a new, empty hard drive that can be used for nothing but Linux. Then, later, you can look at ways to add the old hard drive as a secondary system so that you can switch back and forth between Linux and Windows as needed.

Finally, let's talk about hardware compatibility. Linux has made tremendous progress in this area, to the point that most install programs can recognize all your network, graphic, and sound devices so you don't have to think about them. But just like with Windows, you could have a piece of equipment that the operating system doesn't automatically recognize. With Windows, you can usually call up someone (for a fee) who can help you find the problem and install the right drivers to make that device work. With Linux, there isn't any one company who "owns" Linux that you can call and ask for help; it's a community project so you have to know how to go hunting for information in discussion groups, support forums, and technical websites. That can be a little intimidating when Grandma just wants to type in her recipes.

Have I scared you off yet? If not, here are some resources for you.