I’m not the world’s greatest Linux fan these days. I object to the license (the GPL) used for the Linux kernel and for the GNU package of core utilities used in the vast majority of Linux-based operating systems; I dislike the way the GNU project is trying to reinvent Unix in its own bizarre “not invented here” image and the larger Linux community is tacitly going along with it; and I dislike the way the various Linux distributions’ developer communities tend to be all too willing to take shortcuts toward their various ends, resulting in systems that often either resist customization or lack reliability when one attempts to do anything not explicitly expected by the core developers.

My favorite Linux distribution — for reasons of a balance between easy system management, reliability, and customizability — is Debian, and has been for a while. I find FreeBSD significantly more reliable, somewhat easier to manage, and no less customizable, but among Linux distributions Debian is still my favorite. Other distributions I have used, to varying degrees of familiarity, include (but are not limited to):

Damn Small Linux Fedora Core Linux GNUstep Live CD KNOPPIX Mandrake Linux SimplyMEPIS Linux Slackware Linux SuSE Linux SystemRescue Linux Ubuntu Linux XandrOS Zen Linux

. . . and a few others.

Despite my preference for FreeBSD, my experience with various Linux distributions leads me to believe that yes, Linux is ready for “the desktop”. It’s also ready for the datacenter, the small office or home office, and “the enterprise”. IBM certainly seemed to think Linux was ready for the enterprise when it produced a Linux television commercial a few years ago:

If there’s any lack of “readiness” for the desktop, it is in the fact that the Linux distributions that are best suited to easy hardware support are also the distributions most likely to make life difficult in ways reminiscent of MS Windows. There’s nothing on the order of MS Windows architectural security failures and system resource consumption, of course — but the oppressive “we know better than you” interface rigidity of the most “desktop” oriented distros is limiting, to put it mildly. Meanwhile, the systems best suited to customization without breaking things (a major benefit of using something like Linux rather than MS Windows) seem to lag significantly more on the hardware support front. It seems the options in the world of Linux-based OSes are:

only marginally better than MS Windows for customizability, but great at hardware support “out of the box”

much, much better than MS Windows — so much better that it’s not even in the same ballpark — for customizability, but slightly less great at hardware support “out of the box”, at least where relatively new hardware is concerned

To compare the two options, I’ll summarize the recent escapades of my SigO as she tried to get a fully working Linux-based OS running on her new ThinkPad T500 laptop. Among her requirements for “fully working” were solid wireless support, a working CD-RW/DVD drive, and hardware accelerated 3D graphics for World of Warcraft. The process went something like this:

Try installing the latest Debian Stable release, code named Lenny: fail, because it doesn’t even recognize the optical drive, and won’t finish installing. Try installing the latest Ubuntu release, code named Intrepid Ibex: succeed. Try getting 3D graphics working: succeed. Try getting wireless working: succeed. Try getting used to the UI: fail, because it’s GNOME, about which she says something like “Damn. If I wanted the GUI to tell me what to do, I’d be using Windows!” Try getting IceWM working without a bunch of GNOME crap getting in the way: fail, because the Ubuntu core maintainers have some very bizarre ideas about how package dependencies should be specified. Try installing the latest Debian Testing release, code named Squeeze: succeed. Try getting 3D graphics working with World of Warcraft: succeed. Try getting wireless working: fail, because the Intel 5100/5300 drivers aren’t in the Debian Testing kernels. Try upgrading to a kernel from Unstable/Sid that should support the laptop’s wireless chipset: succeed. No, wait: fail, because now the 3D graphics driver is broken. Try upgrading the driver: fail, because this really sucks and needs to be shot full of holes and left for dead in a ditch somewhere. Try installing the new latest Ubuntu release, code named Jaunty Jackalope, as a minimal install: succeed. Try getting wireless working — well, let’s come back to that after we get the 3D graphics working. Try getting hardware accelerated 3D graphics working without installing a metric rapload of GNOME and other unnecessary poppycock installed as dependencies for user obsequious tools that for some reason appear to be necessary for getting ATI/AMD drivers installed properly: fail. Try installing Debian Unstable, code named Sid: succeed. Try getting 3D graphics working: succeed. Try getting wireless working: succeed. Try getting IceWM working: fail, because it’s Unstable/Sid, and shit just breaks all the damned time. Change the sources.list file to use Testing sources, so that more stable versions of any additional packages she needs will be installed in the future, and she’ll basically have a Debian Testing/Squeeze system with an Unstable/Sid kernel so she can have 3D graphics for WoW and wireless support on the same computer at the same time: succeed. Try installing IceWM again: fail. Try installing Fluxbox instead (at least it isn’t GNOME): succeed. Try getting used to Fluxbox: in progress.

In short, Linux-based systems are every bit as ready for “the desktop” as MS Windows — even more so, in some respects. You just don’t get nearly as many of the much-vaunted benefits of Linux-based systems as you might expect, if you want that desktop readiness.

C’est la vie.

This SOB entry was composed on a ThinkPad R52 running FreeBSD, because I care more about my sanity than I do about having WoW running on my laptop. Of course, if the SigO didn’t have WoW running on her laptop, there’d only be one computer capable of running the game between the two of us at present, thus preventing us from playing it at the same time. As a result, I’m willing to share the insanity of getting things working on her laptop (and I’m the guy that came up with the idea of the last hybrid Squeeze/Sid install, in fact). I’m just glad it doesn’t have to be on my laptop.

Still . . . I’m eager for the day ATI/AMD hardware accelerated 3D graphics works with open source drivers, so I can have it with FreeBSD and don’t have to settle for the software accelerated 3D graphics that currently works — and only supports games like Neverwinter Nights, excluding something like World of Warcraft. While I’m at it, I’m waiting for the Chromium browser (the open source Web browser behind Google Chrome) to be ported to FreeBSD as well, and for open source Flash player plugins on FreeBSD to catch up with Adobe’s official, closed source Flash player plugin on MS Windows (or even for Adobe to get its head out of its fourth point of contact and start offering a FreeBSD compatible version of its Flash player plugin, even if it’s still closed source at the time).

FreeBSD is definitely ready for my “desktop” (technically, my laptop, I guess). If it isn’t, it’s just the closest thing to being ready for it that exists right now, as far as I’m aware. No Linux distribution I’ve encountered measures up. As far as how most people mean “desktop ready”, though, FreeBSD isn’t up to the standards of the “desktop” oriented Linux distributions, MS Windows, and MacOS X. That’s pretty sad, considering how easy it would be to get it there, with a little help from hardware vendors that already support Linux-based OSes.