When Linus Torvalds first created Linux in 1991, he needed some basic tools to make it useful. For this, he turned to the GNU project that, under the leadership of Richard Stallman, had produced free versions of essential computing utilities such as a command shell (
bash) and C compiler (
gcc). From this point on the Linux kernel and GNU tools have been used together in partnership to build a complete computer operating system.
The combination of the Linux kernel and GNU tools is the reason why many free software advocates prefer to give Linux systems the full name of GNU/Linux: to signify the key parts played by both the free tools and the free kernel.
By the mid-1990s several distributors, such as Red Hat, Slackware, and Debian, had created their own flavors of the Linux kernel, GNU tools, and other free software, and Linux distributions as we know them came into being. It is from these early incarnations that most of today's Linux distributions can trace their development.
One major difference between Linux and commercial operating systems is hardware support. Here, the story is two-sided. On the downside, Linux distributors and developers don't have as much access to the internals of hardware as vendors, so there are some hardware devices (certain video cards, modems, and so on) that aren't supported well under Linux. The situation is getting better, however, as hardware vendors recognize the value of Linux drivers. You can check out how your hardware might fare by searching the Web or using a resource such as the Linux Hardware Compatibility HOWTO.
On the other hand, practically all of the drivers that exist for Linux are bundled along with a distribution. If your hardware is supported, you don't need to go scratching around for that driver download: things should just work. Because of the delay in developing Linux drivers, you are, in general, better off steering away from using bleeding-edge hardware for running Linux. This can be an advantage--you will find Linux can give a new lease on life to hardware that was wheezing under the extra load placed on it by operating systems such as Windows XP.
One of the most striking things about installing Linux as opposed to proprietary operating systems is how much software is included along with the system. Because Linux has so much free software available for it, distributions don't stop at just providing the familiar basics of file management and internet software, but ship many applications, from office suites to games. The cost saving of using Linux isn't just that you don't pay for the operating system--for the most part, you won't need to pay for any other software, either.
As with drivers, there are two sides to the software story as well: the flip side of the abundance of free software is the relative scarcity of commercial software. With one or two exceptions, very little commercial software is available for Linux. Most of the time, this doesn't matter. For those moments when you really need Windows-only software, check out programs like QEmu that allow you to install another operating system and run it from inside Linux.
The above points notwithstanding, these days there's a great deal in common between modern Linux desktops and Windows and Mac OS X environments. For those moving a server setup to Linux, the situation is even better. Windows and Mac network protocols are well-supported on Linux, and enterprise software vendors are much more likely to consider Linux one of their target platforms.
The choice of which Linux distribution to use is a topic that attracts heated discussion. Ask a Linux distro-junkie which distribution is best, and he'll tell you that it's the one he's running. In addition to mainstream distributions, there's a vast constellation of special-purpose distributions focusing on a particular area; for example, education or embedded use. Perhaps the best flavor of Linux to run is the one you feel you'll have the most support for.
Red Hat: One of the earliest players in the game, Red Hat now position itself strongly in the business market. It has created a community-supported distribution, Fedora Core, which is the choice of many enthusiasts for desktop use.
Debian: The most popular community-created distribution. Debian's flexibility and reliability have given it strong acceptance with users, despite there being no commercial entity behind it. On the desktop, Debian can be a little rough, but is an excellent choice for server environments. Debian has also been used as the base for many specialist distributions. (See "Installing Debian" for a tutorial that walks through a typical installation.)
Ubuntu: A relative latecomer to the game, Ubuntu has shot to fame for focusing on immediate usability on the desktop. Taglined "Linux for human beings," this Debian-derived distribution is probably the best place for complete newcomers to start.
SUSE: Novell's answer to Red Hat, SUSE also comes in a business-strength enterprise flavor and a community-based solution, OpenSUSE.
Gentoo: Like Debian, a completely community-created distribution, Gentoo's unique aspect is that all software is compiled from source on installation. For this flexibility, among other reasons, Gentoo has become popular among enthusiasts.
Although these are the biggest Linux distributions, there are many other distributions worth looking at, especially if you've got a friend who already uses one of them. One notable distribution not mentioned above is Mandriva, which has a good reputation for being easy to use by beginners. Also of historical significance is Slackware, which although without the bells and whistles of modern distributions, gave many people their first taste of Linux.
One beauty of free software is the ability to create derivative works, and many specialist distributions have sprung up to meet particular needs. Here are a few highlights from this ever-growing genre:
Knoppix: Based on Debian, Knoppix is most well known for its ability to run from a CD: a good way to perform rescue missions on a computer, or to check out how well a PC is supported under Linux.
CentOS: A community-created "enterprise" Linux, intended to provide the features of commercial offerings such as Red Hat Enterprise Linux without the hefty price tag.
Skolelinux: A Linux distribution intended for use in schools. Based on Debian and tailored for the needs of school networks.
GNU/LinEx: A Spanish Debian-derived distribution created by Spain's Extremadura regional government, designed as part of a program to bring IT and communications facilities and skills to schools and the public.
Puppy Linux: Designed to be fast, small, and friendly, Puppy Linux will fit on devices as small as a 64MB memory stick.
iPodLinux: Yes, a version of Linux for the iPod. It will let you play free music formats such as Flac and Ogg files, as well as do daft things such as playing Doom.
With some of the more user-friendly distributions, the amount of jargon you need to know is mercifully small, but here are a few terms that will help when starting out.
Distro: Short for "distribution," as in "Linux distribution."
Boot loader: A small piece of software that loads the operating system into your computer. The most common are GRUB and LILO. Dual-boot users will use the boot loader menu to choose whether to run Linux or Windows.
Package: The way software applications are bundled up for installation on a Linux system. Different distributions use different packaging mechanisms, the most popular being RPM (Fedora, SUSE) and DEB (Debian, Ubuntu).
Service: A program always running in the background that provides functionality to local or remote users; for example, a web server.
File system: A scheme for organizing files on the disk. Windows users will be familiar with the NTFS and FAT32 file systems. Generally, Linux uses ext3. Specialist users may wish to use file systems optimized for their uses.
The links in this article should give you some good jumping-off points to get started. Practically every Linux distribution has a CD download you can use to take your first steps, and several distributions now have "live CDs" you can use without installing anything at all.
For dedicated observers, the DistroWatch website covers the gamut of Linux distributions, and is well worth visiting just to appreciate the massive ecosystem Linux has spawned. Distrowatch also has a great top 100 distribution chart compiled from its web server statistics.
Edd Dumbill is co-chair of the O'Reilly Open Source Convention. He is also chair of the XTech web technology conference. Edd conceived and developed Expectnation, a hosted service for organizing and producing conferences. Edd has also been Managing Editor for XML.com, a Debian developer, and GNOME contributor. He writes a blog called Behind the Times.
Return to the Linux DevCenter.
Copyright © 2009 O'Reilly Media, Inc.