General Failure, Destroyer Of Worlds


(with apologies to Scratch Fury)

While trying to find a way to have a stable Linux environment that gave me both Bluetooth and Wi-Fi support, an Ubuntu kernel panic ate my partition table, so I'm rebuilding my work (yep) laptop from the ground up. Fortunately, I have an IMAP archive of all my e-mail, a week-old snapshot of my /home tree and had uploaded all my recent work to a web workspace, so nothing of any consequence was lost (yet).

Reinstalling is a drag (the Toshiba/M100 restore CDs make it trivial to restore the OS, but then there's SP2, Office and umpteen tweaks), but fortunately I have a list of essentials handy, and it hasn't changed much save for the addition of Gaim and Lookout.

Still, the whole experience has reminded me of something I used to advocate quite firmly for Intel hardware -

Linux on servers, XP on laptops, desktops are up for grabs

It's a philosophy that has served me well way before I started using Macs, and that has only suffered a minor dent when I setup a Windows 2003 box as my office desktop - the thing is rock solid, and has served me well for over a year.

But getting back to the point - even before Ubuntu trashed my partition table, I had started writing a comparison of Ubuntu and Fedora and pointing out that neither of them is ready to deal seamlessly with laptop hardware - I was going to get to the industry lobbying bit and the latest fad of proprietary Wi-Fi drivers, but you can find oodles of rants about that on Slashdot and that was about when modprobe found something it didn't like and ruined my evening.

So here's the piece:

Ubuntu vs Fedora, Reloaded

If you've been reading this for a while, you know I loathe Debian. I don't like the zealot stance, the ridiculous "we're using an Ice Age kernel because it's really stable" attitude, the incredible (and often self-serving) bureaucracy that has entrenched itself into its inner workings, their insistence on using a wierd /etc layout (sure it's simple, but it's not as neat as I'd like), and other progressively more petty and personal annoyances.

RedHat, on the other hand, looks and feels a lot more like what I expect from an enterprise UNIX system. Configuration is more structured, but more logical (and easy to maintain when you have to delegate or share administration duties). It tends to be much more polished, and to have better support for server hardware (i.e., it may not support the latest bleeding edge hardware, but you seldom need to pull stunts like recompiling a kernel with patch foobar to get things to work), and tends to stay mostly the same across versions.

Consistency Über Alles

That's why Fedora is my preferred working environment - despite all the biased (and completely idiotic) nonsense about RedHat "betraying the Linux spirit" (like it ever had one), it's consistent, smoothly integrated and (best of all) extremely solid. My home and testing boxes are being upgraded to Fedora Core 3 (including this web server, which has been running RedHat 9 for ages now), and I only expect to upgrade them again in a year or so - maybe two.

I can log in to any of my machines and find my way around blindfolded. And the interesting bit is that RedHat tends to be better organized than most big-iron UNIXes I dealt with (and infinitely more friendly to the stressed sysadmin than the current Solaris quagmire). I don't do this sort of thing for a job, but I have to do it for my job, and the fact that it's consistently organized helps save a lot of time. It is also quite up-to-date (for instance, you can get Firefox 1.0 for it today, only a few days after release.)

Hard Luck

Still, there are disadvantages. Despite having a much better desktop environment than most Linux distributions (i.e., simple, neat, fast and almost completely KDE-free), Fedora Core 3 doesn't have the kind of hardware support I need - or rather, it doesn't work that well on some laptops, including my Toshiba/M100, for which Wi-Fi and Bluetooth support aren't part of the base distro.

And yes, if I wanted to, I could install those by hand. The thing is, Linux is not a kid's OS any more. Er... wait, let me rephrase that - it shouldn't be an OS where you need to do those things by hand. It's not about GPL driver licensing, lack of usability (of which there are copious examples in the Open Source world), or lack of demand - it's all about lack of follow-through. If it works for whomever coded it, it's OK. Nobody gives a damn if it's easy to install or if it supports all the features out of the box, because you end up staying at the "good enough" point.

The $PATH Most Travelled

So what happens if you want to go beyond that? Well, I bought a Mac, so I won't go there - that solution should be obvious to a lot of people by now, but it's not my place to tell you to do it. I can help out, but it's your own choice to make.

But you have (basically) two other options - either you go for a corporate tour de force and slide into the RedHat/Fedora way and provide solid support for the kind of hardware you'd expect to find in a server room or a corporate desktop and phase in applications as necessary (focusing on server-side stuff like Apache, mySQL, etc. and delivering a contained, yet polished desktop offer), or you go the Debian way and try to be all things to all people.

With a bit too much emphasis on the people aspect to fit into the modern post-Eastern-bloc worldview and too much idealism to actually do the things that actually matter, but hey, I told you I'm biased.

Humane Debian

That's why Ubuntu caught my eye. Wow, Debian with a modern kernel and an actual installer - shouldn't it be some sort of sin to actually provide such a thing? Wouldn't the packagers be crucified and their names expunged from the Holy Writs of the kernel or something like that?

Well, it's thankfully more than a nice shell. It does, however, have a whole slew of problems with older hardware, a funky (and nearly deprecated) X server, and a pretty damn wierd default desktop layout.

In my worldview, usability at the distro level isn't about removing things from the desktop, it's about making sure all the packages are well integrated, that hardware detection works properly, and that the basic maintenance activities (installing and upgrading stuff) can be performed by someone's grandmother.

It's non-heroic, non-idealistic stuff like making sure that when you press "v" inside a list control, the focus moves to the first entry beginning with a "v" (something Gnome is notorious for still not having gotten right).

(I could harp on and on about the white cursors and brown theme, but those are fixable issues - someone will eventually crank out some sort of sensible-ubuntu-theme.deb and fix them all at once).

And, to my surprise, it actually did just that (or close enough to the current Linux status quo to make no difference) on my Toshiba/M100. Wi-Fi worked out of the box (so far without WEP - I've yet to try the full WEP/WPA/802.1x paranoia grilling), and Bluetooth is something I'm investigating.

Turns out I investigated too much.

One thing that irks me, though, is the thing's propensity to apt-get itself into an unusable state. One of my early Ubuntu installs whacked its X configuration to bits, another wiped out my Gnome session manager, etc. People rant on about RPMs being unwieldly, but I find the RedHat package management approach to be far more stable in the long run. Sure you don't get the latest bleeding edge packages, but what you get works.

This was about where I rebooted Ubuntu to see if the new configuration took. End of story - my next work laptop, if it runs any sort of UNIX, is going to be a Mac.

Colophon

The basic point of this story (the whole thing, not just the Ubuntu vs Fedora bit I started sketching out above) is that there are far too many loose ends in Linux for me to think of it as a stable working environment for my laptop. It's not about the crash - it's mostly about the usability aspects, the endless tweaking and the lack of decent hardware support (and yes, I know that owning a Toshiba is pushing it a bit as far as Linux support goes), and I just can't spare the time anymore.

It's been years now since this sort of thing should have been fixed, whether by lobbying hardware vendors or by simply building one coherent Linux distribution focused solely on decent hardware compatibility and leaving frilly desktop applications to third parties.

After all, it worked for Microsoft.


See Also: