What Linux distribution to choose
Linux systems come packaged in distributions and they all have to deal with architecture issues. When you try to choose one of them you first ask yourself what you need it to be like, and then choose from the wide variety available.
- 1. Introduction
- 2. What is a distribution?
- 3. Deciding factors
- 3.1. The architecture
- 3.2. What is your purpose?
- 4. So, what Linux do I choose?
- 4.1. Use a wizard to find out
- 4.2. My recommendations
- 4.2.1. Live distro’s
- 4.2.2. For the begginers
- 4.2.3. Classical, advanced distributions
1. Introduction
“Which one to choose” is a fair question, since there are hundreds of Linux flavors and distributions out there. The truth is this: nobody can tell you what’s best for you. You’ll have to make an informed guess the very first time, then change it or stick to it, and hopefully as you learn more about Linux you will be able to tell what you’d like your dream Linux to be like. There’s a good chance you’ll find it.
This column is by no means an exhaustive presentation of all Linux distributions out there. See DistroWatch for a fairly complete listing. What I offer here are criteria for choosing a Linux distro for the desktop, and some personal recommendations.
2. What is a distribution?
A distribution is a combination of the following: a kernel (the core of the operating system), a bunch of drivers, a file system and many
applications. A distribution can be commercial or free, and any
of its aforementioned parts can also be commercial or free.
I hope it’s obvious why you need a kernel, with it being the heart than makes you hardware alive. A
distribution maker may choose one certain kernel from the ones existent, can modify an existent kernel to some extent, and can use various versions of the kernel. Serious distro makers test their release kernels extensively in order to ensure maximum of fiability and stability.
The distribution maker also tries to ensure you’ll be able to use the operating system with (ideally) any hardware configuration. So they pack in as many drivers as they can. Usually after you start an operating system you get to see something on the screen and your keyboard, mouse, cd-rom and hard-drive are working. That’s the ground level. Problems can appear when you try to use the sound card, the network card or modem, the printer or a higher display rezolution, and then you have to get proper drivers yourself, but at least they try.
A filesystem means the way the kernel organizes the space on the hard-drive. There are a lot of ways, and they usually are operating system specific. On MS-DOS you have FAT16; on Windows 9x you have FAT32; on Windows 2000/NT/XP you have NTFS; on Linux you can choose from ext3, ReiserFS or
XFS; and there are many more. Most operating systems do a pretty good job at supporting most popular filesystems.
Finally, the applications: the actual programs that you’ll use to actually do something with your computer. This is a very sensitive issue, and Linux excels in having lots and lots of applications to choose from. They range from crucial (like network or disk utilities) to useful (a full graphic display system, office, e-mail), to entertaining (games) or more specific
applications. Of course, just like with the drivers, the distribution maker can’t put every possible application in the distribution packages (which these days already run up to several CD’s or even DVD’s). So they try to cover as many needs as they can and use what they think are the best applications for each of them. There can be commercial issues involved: some distros will ship for free with just some simple applications included; you have to buy the really cool stuff.
3. Deciding factors
3.1. The architecture
By architecture I mean the processor design, which in turn affects the intimate design of the kernel and of the drivers. There are many
architectures around; some are intended for personal computers, some have been developed for specific purposes.
An operating system can only run on an architecture it has been designed to run on. So you have two issues, really. First, you can’t use an operating system designed for an architecture (a computer) you don’t
have, even if you get your hands on that OS. This is the case with Apple computers (running Mac OS X), HP servers (running HP-UX) or Sun servers (running Solaris).
The second issue involves adapting an operating system to run on a certain platform. Most of the time manufacturers choose not to release hardware specifications so they remain in control. It comes down to: if I don’t know how it works, I can’t write software for it.
Both issues have been circumvented in some particular cases. Linux has been ported to the Alpha
architecture as well as to Intel and Sun has created an Intel version of its Solaris operating systems.
A little more on the x86 architecture: by this I mean several processors, which share basic specifications: they are made by Intel, AMD and others, like VIA (Cyrix). Of course, the software (kernels, drivers and applications) can be optimized to make use of the latest facilities in each processor, in which case they won’t be 100% compatible anymore, but there is always some common ground which is preferred. Some operating systems will adapt on the fly to different Intel-compatible
processors, with some loss in performance; some you’ll have to tweak to get there, which means more hassle.
3.2. What is your purpose?
What do you need the operating system for? This is a big questions. Do you need it for a home computer of regular power (memory capacity,
CPU speed)? Do you need it for a laptop? Do you need it to perform only some specific task (ex. network router or aboard a NASA deep-space probe)? Would you
like actual quality support or do you want to resort to the help of the entusiast online communities? There are distributions and operatings systems specifically suited to each purpose.
4. So, what Linux do I choose?
4.1. Use a wizard to find out
Here’s a nice answer to the question “what Linux distribution should I choose?” Use a wizard! Zegenie Studios are some very nice Norvegian folks who put together the Linux Distribution Chooser. It looks spiffy and it actually managed to indicate Debian and Ubuntu as the two primary choices for me. Which is quite correct, as end-user distro’s go. Many others swear by it, so I guess there must be something to it after all.
4.2. My recommendations
The following recommendations are grouped under some loose categories and may overlap occasionaly. These are my personal recommendations. Use them as a starting point. If you want more, go see DistroWatch; the page hit ranking top on the right of their page is a good starting point.
4.2.1. Live distro’s
Live distro’s are a very interesting concept which allows you to try out a
particular Linux distro without changing absolutely anything on your current
system. Basically, you pop in a CD or a DVD, boot from it and when you’re done
testing how your system would work out, you simply reboot, remove the media and
get on with your life.
There are some fairly famous live distributions or which also have a live
version: Knoppix, Ubuntu/Gnoppix, SLAX.
Some live distro’s bring a special twist to the whole live idea. Such an
example is GeeXboX which you
can use to play all kinds of movies found on your harddrives. There are also
other purpose-specific live distro’s, suited for networking, gaming or
entertainment jobs.
4.2.2. For the begginers
If you’re new to Linux or you don’t want to have to find out a lot about
computers in general but instead just want to get some work done, I recommend
some of the following distributions: Mandrake, Ubuntu, SuSE.
If you don’t mind paying for your software and you want the extra advantages,
be sure to try some of the following: MEPIS,
Xandros or SuSE (the commercial versions).
4.2.3. Classical, advanced distributions
There are several distributions out there with a long tradition in the Linux
world, but not aimed specifically at the desktop user. Please note that their
particular qualities (especially those of Debian) have produced derived
distributions which use the good parts and enhance them for the desktop. Many of
the distributions mentioned above are beautified versions of the ones below.
However, do not expect a smooth ride. The distributions below assume you want
to be a Linux power-user and that you want to learn more about it and get your
hands dirty. If that’s not correct, do not make yourself crazy; avoid them.
- Fedora: the legacy distro for
the famous Red Hat. At some point Red
Hat decided to terminate its free range of products and specialized in
commercial versions for servers. Fedora has been kept for continuity and for
beta testing. It is enjoyed by former RH enthusiasts (of which there are a great
many), but tends to be always in a beta, more or less unstable state and a
testbed for various experiments. - Gentoo: a distribution which
proposes a system where all packages are compiled and optimized on the spot
for your particular system. Not for the beginners. Running Gentoo as it was
meant to be used means having fairly large amounts of bandwidth and
processor power available. - Debian: one of the great classical
distro’s. It’s package update and management system is one of the best out
there, which explains why many desktop distro’s chose it as their base. The
actual Debian is maintained by a large community for free, which runs
democratically (they even have elections and voting). The full community
support means it will probably continue to be around a long time from now. - Slackware: also one of the great
classics, but also definitely not for the beginner. Slackware is aimed at the
hardcore Linux user which actually dislikes any kind of hand-holding and wants
to be as close to the system internals as possible. - GoboLinux: an interesting
approach which attempts to redefine some core concepts about Linux. In
particular, it drops the classical Linux filesystem organization for a more
intuitive one. It goes as far as to drop the need for a classical package
manager, since the filesystem organization takes care of everything. Again,
not for the beginner, but a nice experience if you have the courage.
