[clue-talk] Why X? [long, with provocative questions]

Joe 'Zonker' Brockmeier xonker at gmail.com
Mon Apr 18 22:08:13 MDT 2005


Hi Matt,

Matt Gushee wrote:
> Okay, I've been sitting on this for a long time ... just can't hold back 
> any longer. BTW, the overarching theme here is "Linux on the desktop." 
> And I'm probably beating a dead horse. So if neither of those things 
> interest you, feel free to skip the rest of this message.

That's okay, let it all out... :)

> Fast-forward to late 2004. Got my wife a new computer for her birthday. 
> Or, well, actually the monitor was a nice new one, the computer was 
> used--but still newer and faster than what I use every day. And I had 
> this crazy idea that maybe I could finally get her to switch to Linux. 
> After all, GNOME coming along nicely, good tech support available right 
> in the house, set the default language to Japanese, even install some 
> very nice Japanese fonts that I have, yes, yes, she'll like 
> that--whereupon I got my rude awakening: today's beautiful, 
> state-of-the-art Linux desktop is ... not just slow, but appallingly slow.

You don't say what the machine is, so I'm not sure what your idea of 
newer and faster is... I'll assume you're talking about a reasonably 
fast machine, something with at least a 1 GHz CPU and 256MB of RAM or more?

Also, which distro are you using? Just out of curiosity - GNOME on 
Fedora Core 3 vs. GNOME on Ubuntu vs. GNOME on Slackware may be a 
different animal... Also, which GNOME? I'm running GNOME 2.10, which is 
supposed to be a bit improved vs. GNOME 2.8.

> So why is the desktop so slow? Perhaps part of the reason is poor code 
> in GNOME itself; maybe part of it is video card vendors not cooperating 
> with open source developers--though I gather that is much less of a 
> problem than it used to be. But, based on various things I've seen and 
> heard over the years, I can't help thinking that a significant part of 
> the problem is the venerable X Window System--in particular, the fact 
> that it is a client-server system.

That's an interesting conclusion. X hasn't changed that much over the 
years, at least as far as I'm aware, in terms of performance, whereas 
GNOME/KDE have added a great deal of features and so forth. The 
client-server architecture hasn't changed much, but the desktops have.

Also, I know that desktops like XFce, Blackbox and FVWM are much more 
lightweight and offer better performance than GNOME or KDE, and they 
still use X - so it would seem the logical conclusion would be to point 
the finger (you decide which finger) at GNOME rather than X.

> But, on X, you still have client-server overhead. Apps don't run as fast 
> as they could, and if you have a "modern" desktop, they can be downright 
> sluggish. And then there are annoying little side-effects like not being 
> able to run GUI configuration utilities as root without "xhost+ localhost."

That's a feature, not a bug. Having to approve X connections for 
different users is a Good Thing(TM) security-wise.

I'm not going to offer an opinion on the client-server performance vs 
and architecture like Windows or the Mac OS because I have no idea 
whether the performance actually suffers or not due to the client/server 
nature of X. However, I will offer this: If I run X11 on my iMac, I 
don't notice any noticable degredation in performance when using X apps 
running on the Mac or being run on a Linux machine displayed on the Mac.

> I'm sure I'm not the first person to notice this. I can recall reading 
> newsgroup threads back in the 90s where most people seemed to agree that 
> "X sucks, and we need to create something better." But it hasn't happened.

Indeed, it hasn't.

> Now, it's not too surprising that few people have tried to replace X, 
> and so far they've all failed--obviously the technical challenges are 
> huge. But what I'm really wondering about, and this is the question I 
> want to put to you all, is why everyone thinks that a client-server 
> windowing system is a good idea. At least that's how it seems, given 
> that when a group of open source people did put together a serious 
> effort to replace X (Berlin/Fresco), it was also client-server-based.

 From the single-user, single-desktop perspective, it probably isn't any 
better. From the multi-user perspective, however, it offers flexibility 
that you don't have with the other architectures.

> Maybe I'm ignorant, but I don't get it. Of course, I've heard of all 
> kinds of cool ways you can use X's networking capabilities. But most of 
> those cool uses, as far as I can see, are utterly irrelevant to typical 
> computer users in typical environments. 

Well, what's typical? I make heavy use of X's networking capabilities, 
so does that make me atypical?

> Apparently, too, the fact that 
> you access X through a well-defined protocol is seen as an advantage. 

Better than an obscure, undocumented protocol, I wager.

> So why not build a windowing system that accesses the hardware directly? 
> Or maybe through a hardware abstraction layer--anyway, get rid of the 
> networking part. It would make for a more manageable project, and 
> probably provide much better performance. It seems obvious to me, yet I 
> can't recall ever hearing of developers being interested in such an 
> approach.

Stripping the networking part of X kills off a lot of interesting uses 
for Linux - thin clients using XDMCP, for example. While this isn't in 
big usage in homes, it's of interest to corporations who may be 
deploying Linux workstations.

> So, opinions, please (without flames, I hope). Why does X continue to be 
> the only game in town? Has the community decided that it's really a 
> pretty good system after all? Or is it just too much work to build 
> something different? If so, weren't projects like GNOME, KDE, and ALSA 
> too much work too?

Well, I think there are a number of factors to consider:

1. The pain of moving to a new system. Even if X sucks, look at all the 
work that would be required to go to something new - it's not just 
writing a replacement for X, it's getting GNOME, KDE and everything else 
to work with the replacement. That's going to take some doing to 
convince everybody that the way to go is to move to something new.

2. It would be a great deal of work, and even really spiffy projects are 
looking at a high likelihood of being ignored because of the first 
factor. Imagine trying to convince all of the Linux projects and vendors 
to move to a new, unproven, system.

3. X's features are of interest to many of us. One of the reasons I 
prefer Linux is because I know I can run Program X on Host A and display 
it on Host B or Host A, which is particularly convenient if I find it 
inconvienent or difficult to install Program X on Host B.

4. History and tradition. X is part of Linux/UNIX culture and tradition. 
Newer Linux users may not care about that, but longtime users will 
largely be resistant to efforts to reduce functionality and make 
Linux/UNIX more like Windows.

5. Cross-platform support. I can run a program on Linux and display it 
on a Mac. I can run a program on Linux and display it on Solaris, or 
vice-versa. I can run a program on Linux x86 and display it on Linux 
PPC, and so forth. (Also tied to #3)

6. Other problems to solve. X works, and there are other interesting 
problems to be tackled that draw developers - whereas replacing X is 
less likely to draw developers because it's not as likely to succeed.

I'm sure there are other reasons. I'm also not convinced that the 
performance issues are related to X, rather than GNOME or other apps. 
I'd have to see some evidence that explains why the client/server 
architecture has sufficient overhead that it needs to be replaced or 
redesigned.

Best,

Zonker



More information about the clue-talk mailing list