Now that Linux has gained widespread acceptance and an increasing amount of favorable press, many IT managers are eager to put it to use in their own shops. Some hesitate to do so because they're concerned about choosing the "right" Linux. In my experience, their concern is based on a confusion about what Linux really is and how it's supported, which isn't surprising given the bewildering selection of Linux distributions currently available. This month, I'm going to go back to the basics and give an executive summary that will address those confusing issues. I'll also provide some tips on how to choose the right distribution for your needs.
Spit and Polish
If you are old enough to remember the fragmentation of the UNIX market and are concerned that the various Linux distributions represent fragmentation of the Linux market, then you can rest easy; there is no parallel between the two. Why is this? To answer this question, you need to know what Linux is and what a distribution is.
When someone states that he is running Linux, he is using the term as if it's a complete operating system, which isn't true. Linux proper is simply the kernel. The tools that make it a full operating system come from the Free Software Foundation (FSF) and its "GNU (GNU's Not Unix)" project. The proper term for the operating system (and the one that the FSF promotes) is GNU/Linux. Since that's a mouthful to say (or type) the OS is most commonly called simply "Linux."
Bundle the Linux kernel and GNU utilities (the base operating system) with selected applications and a custom installer (the "spit and polish") and you get a Linux distribution. It's the "spit and polish" components that differentiates one distribution from another.
The reason that the commercial Unices (e.g., Solaris, AIX, HP-UX, TRUIX, et al) nearly became extinct is because they are almost totally incompatible with each other. Sure, they all work the same on the surface (they are descendants of the original UNIX, after all), but underneath they are all totally different, all the way down to the kernel. Vendors that wanted to write software for the UNIX market had to either expend a great deal of resources maintaining their software on all of these different variations of UNIX or limit themselves to one or two.
While commercial vendors can run into some minor differences between the various Linux distros, the underlying OS is virtually identical within them all. Thus, it's a lot less onerous of a task to port from one distribution to another – especially since more and more distributions are molding their designs to follow the Filesystem Hierarchy Standard, and Linux Standards Base, further ensuring compatibility. All of these factors make remote the potential for the Linux market to fragment.
Distributions: Why So Many?
My earlier definition of a Linux distribution (OS + spit and polish), although reasonably accurate, is somewhat simplistic. But it does beg the question: If all Linux distributions are basically the same, then why are there so many of them? The one-word answer to the question: focus. For some, the focus is the processor (Linux runs on a wide variety of CPUs). For others, the focus is support for bleeding-edge hardware, bleeding-edge software, stability, speed, or any one of a long list of other reasons. I'm convinced that some have even been developed for no other reason than vanity. Regardless, it's a tribute to the flexibility of Linux and open source software that there are so many different distributions from which to choose. One of my favorite Web sites for investigating the many choices is DistroWatch.com. You may want to pay a visit DistroWatch to get a good overview of the applications for which Linux has been used.
While some people find it interesting or exciting to have so many distributions to play with, I tend toward wanting my IT management experience to be both uninteresting and unexciting. As a result, I choose distributions that focus on stability and long-term support. As of this writing, that quickly narrows the choices to either Red Hat Enterprise Linux (which runs on everything from Intel boxes to zSeries mainframe computers) or Novell's SuSE Linux. Both distributions offer commercial support (so there's someone at the other end of the phone when you call for help), and both can run on i5 partitions.
While I run both distributions and both are of excellent quality, I have to give the nod to Red Hat. The reason is quite simple: Red Hat has always released the source RPMs to their distribution. This allows other projects, such as CentOS and White Box Linux, to create virtual clones of Red Hat—for free. Why pay for Red Hat if you can get CentOS for nothing? Here are three good reasons: 1) Red Hat has signed agreements with other companies to supply licensed software with its distribution. A prime example is Java. Red Hat provides Java Virtual Machines (JVMs) from IBM and Sun Microsystems. You can load CentOS and download and install these JVMs yourself, but having them as part of the distribution does make maintenance easier. 2) Support for Red Hat (or SuSE) is but a contract and phone call away. You can find independent contractors who will support CentOS and White Box Linux, but if you want to get assistance "right from the horse's mouth," then nothing beats buying the original. And finally 3) If you ever have any issues with hardware (which I did with an IBM xSeries) and you don't have one of the distributions certified by the hardware manufacturer, then you're out of luck getting help with certain hardware issues. I once had a chat with an IBM tech support representative and asked why IBM would support Red Hat's version but not support the CentOS version of Linux, since they are virtually identical. His response was simple: "Because we need someone to contact if we have questions." This made perfect sense to me.
Projects like CentOS are important to me because of the cost factor. With Red Hat, you need to have a subscription to the update service if you're going to use the distribution. I run RHEL on all of my mission-critical servers. But for testing purposes, or for machines that are less critical, I run CentOS. That way, my knowledge and configurations transfer seamlessly between the two distributions.
Chum in the Water
I already touched on three good reasons to go with commercially supported (or cloned from commercially supported) distributions. There is another, less obvious reason: keeping the lawyers at bay. You want to ensure that all of the packages that you run in your business are legitimate packages, and running a commercial distribution is a good way to ensure this. Let me explain with an example.
One of the most annoying, even ridiculous, situations that exists in the Linux market place is that of playing MP3 files or DVDs. The software necessary to do this is licensed and until recently was unavailable in the United States for Linux. So while I could give the movie industry my money for a DVD copy of a movie, I couldn't legally watch it on a Linux machine. I had to use a Windows machine. (This changed when Linspire paid for the license, and Linspire now includes a DVD player with its distribution). There are other Linux players that will play MP3s or DVDs, but to get them, you need to go offshore and download the software from other sources or use a distribution that already includes it. That's where you can get into trouble. The commercial distributions have already ensured that the appropriate licenses have been obtained for whatever packages they include, so you're covered. You can't tell what licensing arrangement community-developed distribution have made. I don't know about you, but I don't mind swimming in an ocean knowing that there may be sharks in the water. I just don't want people throwing chum into the water while I do so!
How Things Have Changed
Five years ago, deploying Linux in the enterprise was considered a risky move. Linux was considered a hacker's OS, and most commercial software wasn't supported on the platform. My, how things have changed! Today, mission-critical software is routinely deployed on Linux, now considered a mainstream choice for an OS.
The distribution you choose may be dictated by the software you are deploying, or you may be able to pick any one of the hundreds available. In either case, apply the same criteria to the distributions that you apply to the applications, and you'll do fine. Linux has become a model computing choice and can stand up to the scrutiny.