So I totally geeked out this week. I spent some time installing most of the latest Linux distros under VMWare to see how the open source operating system was coming along.
I’ve dabbled with various distributions for years. I think my first install was Slackware 1.x running on a Pentium II box. The OS has made significant improvements from the early days. Installation, for the most part, was painless and quick. The window managers (both Gnome and KDE) look nice and have plenty of eye candy. Unfortunately, Linux still feels like a miss-mash of various applications cobbled together with masking tape and not a unified OS.
I installed (or tried to install) the following distributions on a VMWare server on my Athlon box:
* Ubuntu 6.10
* Debian 3.1 R5
* Gentoo 2006.1
* Fedora Core 6
* Slackware 11.0
* FreeBSD 6.2 (not Linux, but wanted to compare)Software I installed on each: Apache, Tomcat, PHP, MySQL, JDK 1.6, and NetBeans 5.5.
Executive Summary:
Quickest to get up and running: Ubuntu 6.10
Never got running at all: Slackware 11.0, Gentoo 2006.1
Most painful: Gentoo 2006.1
Most likely to use: Debian for desktops, FreeBSD for servers
Notes for each distribution:
I didn’t do any fully exhaustive tests during this roundup — I don’t have the time for such things and I was really just trying to get a feel for how Linux was coming along. Everything I’m about to write is very subjective and based on my gut reaction to each install. Your mileage will certainly vary.
Ubuntu – This was the easiest distribution to install. It was really just “insert CD, start VM” and I was up and running. By default, Ubuntu enabled way too much eye candy at first until I tuned it down a bit. (this comment applies to most of the distributions I was able to get running except Debian). The package management UI was really nice. Ubuntu feels a little removed from the hardware which is great for first time users but left me feeling like something was missing.
Debian – This is the base distro for Ubuntu so it felt very similar. Debian did enable fewer eye-candy effects by default, which was nice. It uses the same package manager as Ubuntu which works very well. Debian felt very solid, though I don’t have any empirical information to back this up. The installation of JDK 6 and netbeans was quick and painless; and NetBeans seemed more responsive. If I were to run a Linux desktop, Debian would be the distro I’d choose.
Gentoo – Biggest pain to even attempt and in the end I failed to get an install to work. Gentoo throws out all of the pre-built binaries and instead has you configure and build almost everything from scratch using a packaging tool called ’emerge’. Having built kernels from scratch in the past, I figured this wouldn’t be too bad. I read the build instructions twice before starting. I was very careful about the options and double checked everyting. In the end my newly built kernel panicked on boot. I tried again, double checking my settings a second time but ended withthe same result. Gentoo failed twice after I messed with settings for over an hour and compiled for three. This experiment was a total waste of time.
Gentoo is the distribution for control freaks and masochists. It has way too many ambiguous options to set, too many places to mess something up, and too much manual tweaking for my tastes. If I wanted to learn the totality of Linux internals or wanted total, fine grained control my kernel, this might be the one for me. As an every day user, I wouldn’t even touch this one. Yuck.
Fedora Core 6 – My first attempt with fedora failed so I went digging around the net. It turns out Fedora and VMWare don’t like each other if you configure your virtual hard disk to use the ‘BusLogic’ SCSI format. Switching to ‘LSI Logic’ solved this problem and I was quickly up and running.
The default desktop manager for FC was KDE. I used to really like KDE but this version seemed to run especially slow under VMWare. I also experienced several application crashes from KDE. If I were to run FC6 I’d switch over to Gnome. While gnome has it’s own set of problems, they seem less dramatic than those in KDE. In the end, this wasn’t a bad experience but it certainly didn’t stand out.
Slackware 11 – Slackware was the first distribution I ever used back in the day so I had high hopes for version 11. Slackware retained the ‘pick only those packages you want’ text-based installation menu system which I like. It let me avoid installing all of the typical garbage installed by default by the other installations. After I set up my partitions and selected my packages Slackware went about it’s business quickly. In the end, however, none of my three installation attempts would boot within VMWare — each time I tried to start the OS it’d just hang after post. I’m sure if I dug around long enough I could figure out what went wrong, but in the end I just want the thing to work.
FreeBSD – FreeBSD isn’t a Linux based OS but is based on the Berkeley Software Distribution (BSD) Unix-like operation system. I wanted to install this just to contrast it with the above Linux distros and ended up impressed. In terms of ease of setup, it was a good compromise between the ‘let the installer do everything’ approach of Ubuntu and the ‘get ready to compile’ hell of Gentoo. Once installation was complete it felt very familiar. It’s hard to quantify but FreeBSD feels more ‘Unixy’ than Linux. It also felt more like a unified whole than the other distributions.
Apparently FreeBSD has some excellent uptime numbers, at least according to their [wiki](http://en.wikipedia.org/wiki/FreeBSD) page. I’ve heard this from people I trust as well. If I was running a server, FreeBSD would probably be my first choice.
Conclusions:
Each distribution has it’s own set of strengths and weaknesses. Which one should you choose? It all depends on what you want to get out of your new Unix-like OS.
For me – I’m sticking with Windows for now.
Linux has definitely made some great strides over the past couple of years but it doesn’t feel ready for me to switch just yet. Can you say ‘Cut & Paste’ support? I would have thought that by now the Linux geeks would have figured out this critical UI component. The window managers have made good progress but they still fall short of a cohesive user experience.
The package managers do a fair job of abstracting all of the various package dependencies but they’re still very hit and miss. Tracking down the packages manually doesn’t seem so bad unless there are a dozen different versions and each app requires a different one. I’m wondering if Linux application writers would be better off statically linking their dependent libraries and being done with it? Why not? It still seems like most of the library versions are incompatible with previous versions anyway.
In the end OS X might be the way I go in the future. It has the nice Unix-like core with all the pretty eye candy up front. It doesn’t have the huge security holes that MS-based OSes still seem to be plagued with. Finally, the majority of applications I use every day are available on OS X. (e.g. Adobe Lightroom, Firefox, Thunderbird, and Quicken) Maybe the next iteration of Intel-based Macs will be the choice for me? Time will tell.