Saturday, July 28, 2007

Choosing a distribution

There are so many guides and reviews out there on the net, it hardly seems necessary to write another regarding the topic of choosing a Linux distribution. Still, it can't hurt, can it? :-) I have tried a fair number of distributions, but I'm only going to write about those I have some at least some real experience with.

Ubuntu

Ubuntu is undoubtedly among the best of desktop-oriented Linux distributions today. If you have a computer with fairly common hardware inside, chances are Ubuntu will install painlessly. Ubuntu is designed to hide the interior mechanics of the operating system, and the installation CD is also a so-called Live CD, meaning you can run the OS just by inserting the CD and booting. The CD comes with all the basic software you'd want on a desktop, including OpenOffice.org, and even the command line is designed to be somewhat more user-friendly than Linux command lines traditionally are. For example, if you open a terminal window and type "inkscape" (an excellent free vector drawing program), which doesn't come with the CD, you will get a nice message telling you the command to download and install inkscape via apt-get. Furthermore, the many included administration tools, including network tools, X configuration tools, package managers, etc., means that if you're familiar with using the Windows control panel to configure your system, Ubuntu should be easy to learn how to administer. Still, as much as Ubuntu tries, it is not a Windows replacement; it is a very user-friendly operating system, but sooner or later you will run into problems which require some knowledge of Linux to fix (although the Ubuntu forums really help here). Thus, if you are new to Linux and want to give it a try, I suggest you download or buy the Ubuntu CD and at the same time get a good Linux book so you can start building your knowledge of the nuts and bolts of the OS. FYI: Dell is now selling desktops & laptops with Ubuntu Linux pre-installed. http://www.ubuntu.com

Debian

As great as Ubuntu is, much of its ease of use comes from the distribution it originated from: Debian. Perhaps Debian's greatest feature is that it is built upon an astounding package management system known as apt, which does a fantastic job of resolving dependencies (programs & libraries that other programs require to run). Debian tends to rely on the command line for configuration; this doesn't necessarily make it hard to work with Debian (in many ways, Slackware can be harder to set up), but it does mean you'll have to read a fair amount of documentation before you try to install. I would mainly give one word of warning with Debian (and similarly for Ubuntu): Never add an unofficial repository to the apt sources list; there is a perfectly good chance that you'll break your system. If you want software not in the main repository (this should be a rare occurrence), compile from source. http://www.debian.org

Slackware

Slackware can be an excellent option if you like to have control over your computer. I wouldn't recommend Slack to someone who is new to Linux; Ubuntu, for instance, does all the set-up automatically and delivers a powerful Linux desktop with a large repository of software and the ease of Debian's apt packaging system. However, if you aren't content with the "standard" setup (GNOME, the default services, sudo), Ubuntu can be a pain. I feel that this is where Slackware shines; although it comes with helpful text-based configuration tools, it is designed to be easily configurable through basic text files, and therefore gives easy access to all the customizability of Linux (GUI tools, by design, can't encapsulate every single option). It's not as strongly tied to its packaging system as, say, Debian/Ubuntu; rather, it focuses on making compiling programs as easy as possible, instead of trying to put every possible package into one large repository. All the window managers have usable configurations out-of-box, unlike other distros where care is only given to KDE or GNOME. Slackware isn't for everyone, but if you like to tinker and don't mind taking a week to set-up your operating system, you may want to give Slack a try. http://www.slackware.com

Other fine distros

There are plenty of distros which have a goal similar to that of Ubuntu: a user-friendly desktop Linux operating system. There's Mandriva Linux, SuSE Linux, and Fedora Linux, to name a few. Fedora Linux is based on the late Red Hat Linux (Red Hat is now focusing on enterprise needs rather than the desktop). I used Red Hat Linux 9 for a short while, and found it somewhat buggy. Fedora aims to include the absolute latest software, so I wouldn't expect it to give the best experience for a new Linux user. I haven't tried Mandriva or SuSE, so I won't comment beyond "try them." Gentoo Linux is a popular distribution which caters to experienced Linux users, like Debian and Slackware; however, with Gentoo, you can compile everything, which is supposed to optimize the OS and programs for your particular system. FreeBSD (and its cousins, NetBSD and OpenBSD) are also interesting distributions; they are based on a different kernel (not Linux), and aside from the debate between GPL and BSD definitions of "free," the big difference between FreeBSD and, say, Debian or Slackware for a desktop user is that it can be (much) harder to get some hardware to work with FreeBSD than Linux. This is mainly because Linux has a large desktop user base and is "cool," so there's a larger effort towards getting a wide variety of desktop-oriented hardware drivers written for Linux.

Update (7/29): I would like to add that I am not an authority on any BSD. If you want to get the facts about FreeBSD vs. Linux, go here:

http://www.over-yonder.net/~fullermd/rants/bsd4linux/bsd4linux1.php

As a desktop user, I don't necessarily value stability above all else. I personally feel that Linux, "chaotic" though its development process may be, provides a nice compromise between stability, security, "tinker"-ability, and desktop-oriented hardware support.

1 comment:

Exospaca said...

You're a fool. The BSDs are not based on a different kernel, they're entirely seperate operating systems.

They share some code between one another, but their userland and kernel are all developed inside one project. OpenBSD is the OpenBSD kernel and OpenBSD userland, with the OpenBSD ports tree, NetBSD is the NetBSD kernel, with the NetBSD userland and the NetBSD pkgsrc, FreeBSD is the FreeBSD kernel, with the FreeBSD userland and the FreeBSD ports tree.

They are not all done the way Linux distributions are, with the same bunch of random userland tools from the GNU with the same Linux kernerl. Where Linux distributions are all a garbled mess of random tools, the BSDs are each seperate operating systems.