Sunday, December 20, 2009

Slow down, Ubuntu

For those of you unfamiliar with Ubuntu, it is a Debian Linux distribution for netbooks, notebooks/desktops, servers, and whatever else it will fit on. If you have no clue what I'm talking about at this point, then you might as well move along.

I have mixed feelings about the Karmic Koala (9.10) release. I will say without any hesitation, it is by far the best release I've installed on my laptop (which has seen it's fair share of releases). Today, however, I had the "fortune" of experiencing the painful procedure of getting it (Xubuntu, by the way) to run on my old desktop that I use as a file/print/everything else server. My old desktop is by no stretch of the imagination a top of the line, current system. It's the very first generation Pentium 4 (Willamette), 1.7 ghz, with 512 MB of RAM and about 570 GB of disk space. This was before multiple cores existed on a chip or the notion of hyperthreading was conceived (in the consumer sector, at least). However, after some researching and tweaking, I'm convinced that the problems I ran into are not due to the near-obsolescence of my hardware, but simple coding/configuration errors that Karmic has out of the box.

I ran into two pretty significant hurdles: problems with the boot loader and static IP configuration. Basically, after installing the system, my first attempt to boot the system without the Live CD failed hardcore. It said it could not detect the device with UUID ####....blah blah blah, or something to that effect. I had to do a substantial amount of research to find that the script that configured the GRUB configuration script was in error and needed to be corrected, along with some updates to some GRUB-related packages. Failing to boot would without a doubt shut down a potential Ubuntu user immediately. This is a very serious error that should have never gotten through testing, but somehow it did.

Secondly, the static IP configuration problem. I tried using the Network Manager in Xubuntu to configure my static IP. I got weird results. A couple times I got disconnected altogether. Some times I could connect within my LAN, but could not make outgoing connections to the Internet. I ended up having to remove the Network Manager and related packages and set up my static IP manually in /etc/network/interfaces. I restarted the networking subsystem and it worked like a charm. I remember having problems with Network Manager since 6.10. Over three years and this thing still sucks. Come on, guys.

Lastly, this was not a critical error, but I lost the ability to view my CUPS printer status via the web app on port 631. This isn't critical but is pretty useful (to me) for diagnosing printer problems. Came to find out that all of the scripts that are supposed to run in /etc/rc2.d/ either aren't running at all or only some of them are running.

The six-month release schedule Ubuntu maintains has been pretty cool up to this point; we get to see all of the cool new stuff that's coming out, but we also get to fight through all of the unanticipated bugs. Things like what I've ran into today would send any potential Linux user away from Linux, or at least Ubuntu, back to their Microsoft/Apple comfort zones. Not only does this discourage potential users, but it could very well damage Ubuntu's reputation. Ubuntu is without a doubt the number 1 Linux distribution, but if things like this keep falling through the cracks, it will be pretty easy to find a new number 1.

So, Ubuntu, slow down. Take more time to review code, for unit testing, integration testing, etc. I know testing every combination of hardware isn't feasible, but analyzing code up front is. Focus more on quality to ensure Linux as a whole and Ubuntu maintain the reputation that has been established so far. Extending the six month release schedule to a yearly release schedule would be perfectly fine with me.