login
v2
v1

jmoiron.net

Various (linux) desktop issues

posted February15th, 2005 @ 00:00:21

- tags: general tech , linux

- comments: 0

Courtesy of OS Galaxy blog syndication came a link about Mockup, which is actually a bit hard to explain; or at least, its relations to the rest of my thoughts on the subject of desktop Linux (which I feel is still somewhat of an oxymoron.) The Register gave some light play at this Linux desktop perdicament today, and I mostly agree with their take on the freak mainstream and linux's preparation thereof.

This weekend I had the pain-sure (I can't quite figure out if it was painful or pleasurable) of refactoring the two computers currently doing service at my old digs in Sleepy Hollow. My parents machine got happily upgraded from a 700 MHz duron with 128 MB of pc133 ram to a Sempron 2400+ with 256 meg of pc3200 DDR ram (and a 'new' 300W power supply to run it all); my brother's machine (who is fast approaching a size at which it the term 'little' is no longer applicable) got a new mobo and a geforce 4 so he could play some games (that he swore to me he was uninterested in during the original building process.) With the hardware upgrades out of the way, I was a little bit disappointed to see how their win2k installs were dealing with the changing hardware.

My experience with hotplug is that it finds hardware and uses the appropriate modules (which are usually all there on "desktop" Linux distributions) relatively quickly and during the booting process. win2k (intentionally left lowercase) took about 25 minutes to discover and install all of its hardware on my parents machine, and my brothers machine was not showing any significant gains with the DDR and ram upgrade, so I decided that it was time (3 years has past after all) to do a fresh install and move them to XP (my parents have an LCD and I figured they'd benefit from cleartype; my brother is interested in a particular timeframe of games that have had a history of problems with 2k.)

XP came up like a snap on both machines (my mother had a CD drive that was a little flakey, but getting rid of her terrible old 10 gig hard drive was really quite a boon to overall system speed), and for the most part it was functional enough to install a few necessary drivers. I noticed that it ran exceptionally slow on my brothers machine before getting the nVidia drivers installed, which makes me wonder if X might be in fact a better all purpose solution since without hardware acceleration X manages to compete with a decent standing. However the speed (and more importantly the responsiveness) of the UI in XP is unmatched in the Linux world. There is some strange mythos surrounding Linux that it is somehow faster than windows; but when you try to assemble a reasonable facsimile of a normal windows operating environment, this comparisson falls flat.

Enter Mockup, an attempt to create a fast, pleasant, unified user experience using whatever is available in the free software world. For their purposes (and I think for mine, too) Qt was chosen for its implementation language (which is an odd choice; I'd chose based on speed alone) and because you can run it without X11. This got me thinking; perhaps "unified" is the right way to go with this.

Gnome, KDE, XFCE; they all provide only a layer on top of X11, which itself is a graphical layer on top of whatever POSIX OS you want. This is great for interoperability among different platforms, but in order to preserve this interoperability between layers must be sacrificed, and this is almost always necessary for the "Desktop" user. Plug in hardware, and it works; this has to be done at a low level, and then communicated to the user at a high level. The *nix approach is to add optional technologies (like DBUS or whatever KDE has had for the past few years that everyone ignored) and then detect those technologies and use them to achieve this goal. This all ties quite nicely with the "wrong-way approach" paper; In this case, the UNIX 'wrong-way' is being outdone by an even wrong-er way (windows).

The reason that one approach is wrong while the other is right is left to whoever is reading this to decide, but rest assured that this doesn't actually reflect on the quality of the product, just the quality of the approach. In any case, I am convinced that interoperability and modularity to the extent that it exists in *NIX in general and Linux in particular is damning on the desktop. I've been thinking about it only a short while, but have not been able to come up with a simple, consise argument (or an enumeration thereof).

The funny thing is that almost everything we need to make Linux on the desktop a reality for more than "freaks" is sitting right there. We have some extremely brilliant people in the communities, but we aren't really there yet even after 5 or so years of accelerated development. Ubuntu was created to address these problems but it doesn't do it adequately, despite employing many genious GNOME developers. It's time for someone (in particular, someone smarter than me and more intimate with the technology) to step back and take a look at the overall structure; I think that they will discover that the seperation of layers makes layer integration dependent on message passing, and these layers of abstraction cause two things: logarithmic increase in complexity of implementation and perhaps a linear decrease in speed of the final product.

I would be interested in working on a project similar to Mockup but without the intellectual shackles of BeOS; as far as I can tell its the only way that "this endeavor" will ever end in success. A Linux distribution needs to be bult from the ground up, most likely on some existing technologies (read: existing binary package management, perhaps an existing DE) but have its own set of requirements that are more extensive than normal. Red Hat would actually be a quality candidate, but its speed deficiencies are particularly damning among Linux distros; Mandrake is a far cry, and I don't really have much experience with Libranet and others of its kind.

comments