Slashdot Mirror


2.4, The Kernel of Pain

Joshua Drake has written an article for LinuxWorld.com called The Kernel of Pain. He seems to think 2.4 is fine for desktop systems but is only now, after a year of release, approaching stability for high-end use. Slashdot has had its own issues with 2.4, so I know where he's coming from. What have your experiences been? Is it still too soon for 2.4?

23 of 730 comments (clear)

  1. No ... I like 2.4 ... by SuperDuG · · Score: 4, Insightful
    2.4 was long over do. Does anyone else remember the "coming soon ... erm wait ..." and the date kept getting pushed back further and further ...

    I really like using USB, and I like not having to use ALSA for my sound card (not that I have anything against ALSA).

    After playing around with debian the other day and seeing all of my hardware that WON'T WORK with the 2.2 series it has basically come to my attention that I am all for the 2.4 series.

    Linux is a continously developing system, whether it be the kernel, distribution, or software. Linux will always be "In Developement". Which is perfect for linux.

    So yeah ... if you don't like 2.4 ... go back to 2.2 ... yeah ... thought so :-P

    --
    Ignore the "p2p is theft" trolls, they're just uninformed
  2. Re:Au contraire by PD · · Score: 3, Insightful

    I hadn't noticed that Linux was any slower feeling than Windows. On my Celery 300A Windows is PAINFUL to use, but Linux is amazingly quick - running 2.4.17. I run Windowmaker, and that's it. No Gnome, no KDE, no funny transparent terms.

  3. Mandrake8.1 ships with both 2.4 and 2.2 by renoX · · Score: 5, Insightful

    This guy is complaining that he had troubles on a production server with Mandrake8.1 and its kernel 2.4.

    But Mandrake 8.1 ships with both kernel 2.4 and 2.2.
    The idea behind it is: if you need all the fancy stuff use 2.4 but if you want stability use 2.2.

    So using 2.4 on a server and then complaining that it isn't stable enough is silly IMHO.

    That said I agree that 2.4 has been slow to stabilize (VM mess apparently caused by communications problems between Linus and Rick Van Riel).

    1. Re:Mandrake8.1 ships with both 2.4 and 2.2 by tpv · · Score: 3, Insightful
      if you need all the fancy stuff use 2.4 but if you want stability use 2.2.
      Yeah, cause Linus was joking when he said that even numbers were "stable".

      2.4 is a supposedly stable tree.
      It's supposed to be Odd versions have fancy (ie experimental) stuff, use at own risk, Even versions are stable and suitable for real usage.

      So using 2.4 on a server and then complaining that it isn't stable enough is silly IMHO
      Then Linus should stop saying that the even versions are stable.

      Insert obligatory *BSD advert here

      --
      Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
  4. Why didn't he downgrade immediately? by mvdwege · · Score: 4, Insightful

    First, he replaces a known working server with something new. Then he keeps on adding bleeding edge newest kernel upon newest kernel to this box (following his narrative, it sounds as if he installed new kernels upon release).

    Second, nowhere does he mention why he needed a 2.4 kernel in the first place. In fact, he mentions how he finally decided to downgrade to 2.2.

    So, in conclusion: He upgrades to the bleeding edge without proper need, and when trouble ensues, instead of rolling back, he continues upgrading. Tell me why this guy is not a hopelessly incompetent sysadmin who's trying to blame Linux for his shortcomings?

    Hell, even I as a home user waited until 2.4.17 before upgrading my main box from 2.2.19. If I can perceive the weaknesses of the 2.4 kernel, why can't a professional do so?

    Mart
    --
    "I know I will be modded down for this": where's the option '-1, Asking for it'?
    1. Re:Why didn't he downgrade immediately? by bakreule · · Score: 5, Insightful
      "Hopelessly incompenetent"??? Are you kidding? You think he has shortcomings because he was doing what every single rational person does when encountering a software problem? When a program that I buy/download doesn't work, I immediately search for a patch. VERY reasonable behaviour.

      Far be it for me to criticize Linus, et. al as I could never do what they do, but the shortcomings are not with this guy, but with the buggy kernels. These are release kernels, they are not beta kernals. I think, considering the reputation of Linux, that a release kernel should be stable. Yes, bugs happen, and when they do, you would expect a patch to fix these problems.

      If everyone did as you suggested and rolled back to 2.2.x at the first whiff of trouble, who would be out using these "bleeding edge kernels"??

      I think you should cut the boy some slack.....

      --

      Buses stop at a bus station
      Trains stop at a train station
      On my desk there's a workstation....

    2. Re:Why didn't he downgrade immediately? by Lumpy · · Score: 5, Insightful

      EXACTLY!!!! Everyone that has been bitching about the 2.4 series could never give a real reason why they switches their servers to it. I swirtched to 2.4 and kept using every version because of my firewire video editing projects. and firewire is just now getting stable and useable. a server does not need this. nor does it need usb, or anything else added to the 2.4 series. All of my linux servers at work are running 2.2 and will continue to do so until they NEED a 2.4 kernel. It this insane constant "tinkering" that many linux zealots do that makes management not even consider linux as an option. MY boss mentioned that another devision asked him how we kept the linux boxes running well, I told him that we installed it ,configured it and then LEFT IT ALONE except for security patches. and that kiddies is the key to any server..

      --
      Do not look at laser with remaining good eye.
    3. Re:Why didn't he downgrade immediately? by MobyDisk · · Score: 3, Insightful

      This is hilarious!

      At my work, just yesterday we were discussing how frustrating it was that users would downgrade when they had a problem instead of reporting it or checking for a newer version! The argument was that since they kept doing that, we could never determine if a new version needed bug fixes or not, and the bug reports we did get were meaningless because they were always on dated versions. I find this to be a common mentality.

      Now I hear the exact opposite. This guy did exactly the right thing. Don't use beta versions, but if you have a problem, upgrade to the NEWEST, don't downgrade to an old version.

    4. Re:Why didn't he downgrade immediately? by RatFink100 · · Score: 3, Insightful

      He mentions in passing that the reason for wanting to use 2.4 are the 'big iron' features - better support for large memory, large file and SMP. Notice it's better support so 2.2 will work but may not be exploiting his hardware to its best ability.

      The reason he doesn't downgrade immediately is that it's a big job. Compared to a downgrade - which presumably involves a backup, rebuild and restore (sounds like several hours downtime), an upgrade to the next kernel is basically a reboot.

      The fact is they took a significant decision when they decided to go 2.4 to begin with. Having made that decision - rightly or wrongly - he then has to make decisions about what to do when he hits bugs. The business may prefer (initially at least) to live with the problems rather than face a prolonged downtime for the downgrade. Or live with them until they can schedule such a downtime.

      There may have been things he could have done better but hopelessly incompetent is a bit harsh.

  5. Cluestick by thimo · · Score: 4, Insightful

    Oke, so we're talking:

    1. Mandrake 8.0, *the* desktop distribution _and_ a dot zero release.
    2. A kernel lt/eq 2.4.6 with known problems and definetaly /not proven/.
    3. A large-scale *production* server.

    Somebody hit this guy with a cluestick! Please?

    Thimo

    --
    Avoid the Gates of Hell. Use Linux!
  6. We are worse off with 2.2 by oingoboingo · · Score: 5, Insightful

    Interesting what the author was saying about 2.2 versus 2.4 in terms of stability. We have 3 Linux machines which are used quite heavily here at the moment:

    1) A dual PIII-800/Intel 440GX/512MB ECC RAM based server, with a Mylex AcceleRAID 170 adapter, an Adaptec AIC-7896 SCSI adapter, Intel EtherExpress Pro 10/100, and an external 450GB SCSI RAID-5. This box is used for NFS/Samba file serving and an e-mail server for around 100 users.
    It runs kernel 2.2.17

    2) A dual PIII-800/VIA 133 server/1GB PC-133 RAM server, with an Initio A100U2W SCSI adapter, Intel EtherExpress 10/100 and 70GB of external SCSI RAID 1/0. It runs MySQL, Apache, and a collection of internally developed Perl, C and Java server apps, on kernel 2.4.3

    3) A dual PIII-450/Intel 440BX/512MB PC-100 RAM server, with an Adaptec 2940UW adapter, Intel EtherExpress 10/100 and 170GB of external SCSI RAID-5. It is used as a development system, and runs MySQL, Apache, and assorted Perl, C and Java apps, on kernel 2.4.1.

    Systems 2 and 3 have both been up for 197 days as I type this, and would have been up for over 250 days had we not needed to power them down to move them to a new server room.

    System 1 (with the 2.2.17 kernel) has never stayed up for more than 55 days. It hard crashes without anything informative being written to the logs, and obviously required the reset button to be pressed.

    Has anyone got any ideas, given the hardware configs and software running on these machines why 2.2 is so horrendous, yet 2.4 so stable?

    1. Re:We are worse off with 2.2 by WasterDave · · Score: 5, Insightful

      I know that there certainly were some... ahhh... issues with the Intel 8255x driver for Linux. There was a bunfight a while back when FreeBSD wasn't compatible with the embedded version of the 82559 (82559er), and the suggestion was made that someone look at the Linux driver to see what the command we were missing was. This led to a big stream of mails about how bad Linux's 8255x driver was, see.

      Or something like that.

      Anyway, I'd look at the changelogs for the network driver between 2.2.17 and 2.4.1, you may learn something.

      Dave

      --
      I write a blog now, you should be afraid.
  7. Kernel Panic by ChaoticCoyote · · Score: 4, Insightful

    Is Linux 2.4 unstable? It depends on your perspective and luck. I'm running 2.4.8 and 2.2.19 (Debian potato) on my systems successfully; 2.8.9 thru .12 have been glitchy for me, especially when it comes to running big jobs that stress the VM. Haven't tried anything above .12 yet; I'm waiting for .18. My old cluster runs 2.2 simply because I have no reason to change.

    Your mileage, of course, may vary.

    I do think that 2.4 has been managed poorly. People complain that Microsoft beta-tests software on thier customers -- yet that is precisely what the kernel team does to Linux users when they release a "stable" kernel with an entirely new VM. A couple months' (weeks'?) testing on developer workstations is not sufficient for an "enterprise" class operating system. Anyone who understands the least bit about complex systems knows that you don't replace critical architecture (the VM) without jeopardizing stability.

    It's all water under the bridge now; I hope Linus and company have learned from the 2.4 battles. If 2.6 has the same kinds of problems and controversies... well, I prefer not to think about it. For my part, I plan to beat 2.5 beta kernels to death, to help the testing along. Testing is as important as kernel hacking -- even if it isn't as sexy.

  8. Desktop Myth by ImaLamer · · Score: 5, Insightful

    He seems to think 2.4 is fine for desktop systems but is only now, after a year of release, approaching stability for high-end use.

    I don't get it. I use Linux on the desktop. I have to admit that I don't run linux on my main machine. This is only because I've taken my second hard drive out, and put it back into an older machine. [sorry, wine doesn't like Red Alert 2]

    Before I did this though, I ran 2.4 kernels on my desktop. None of the problems I may have had were with the kernel. Problems I had were mainly with certain applications and when I pushed them to their limits. Pan, for instance, crashed a lot on me, but that was because I was downloading gigs per day. A simple Pan upgrade fixed that.

    In my humble opinion, 2.4 is prime for the desktop. Linux is more than ready for the desktop. I know he says it's ready for the desktop, but not ready for high end systems. To me 'high-end' is what you ask of a computer. I've got a 333MHZ running Red Hat 7.2. The computer is running webmin, proftpd, apache, and many mail daemons. I must also mention that SETI runs 24/7, it only has 64 MB of RAM. It never goes down, it never 'crashes', and is up as long as there is power running to it.

    So... it's ready for the desktop? Sure, 2.4.x is prime. All the drivers I've needed supported are there. Even my >$50 webcam.

    The question of 'desktop' use isn't with the kernel though. Desktop users don't patch or compile the kernel... how many times do they do it in *indows or MacOS X? They install complete distributions. IMHO, again, the only thing that keeps Linux off the desktop is easy program install. RPM has killed itself with dependencies, and apt-get is console based. Apt-get is waaay better, and it has worked wonders on my Red Hat machine [apt-rpm]. The problem is not being able to download an app and install it like *indows.

    Solve this and I will sit outside my local computer store and hand out CDs. I don't know about high end systems, but dammit!, desktop users are ready... format that *indows crap and get a real OS!

    Gimme a good apt-get gui... or have the system run apt-get in the background solving dependencies when needed... my g'ma will have it.

    BTW, I just saw a guy on TV and his name is... get this: Joe Householder

  9. Re:Au contraire by roguerez · · Score: 3, Insightful

    Must have been a problem with your system. I have been running Windows 2000 on a K6-266 with 128 MB of RAM for about a year. It flew. It's important to have good disk access, so I put a 10 MB 7200 rpm disk in it and installed Windows on that, which made it even snappier.

    The only reasons I bought a new machine is that I needed the K6 to act as a FreeBSD box and because I wanted to play DiVX and games, both of which demand more than a K6-266 regardless of the OS used.

  10. large system problems by markj02 · · Score: 4, Insightful
    Let me first say that, despite the problems I mention below, I really appreciate the work that has been going into the Linux kernel. Once you get it configured and compiled, it's a reliable and powerful system. But if the kernel is too hard to configure and compile, that severely limits how widely Linux can get adopted.

    Now, what problems am I talking about? The latest 2.4 kernels still have compilation problems in some drivers (2.4.17 has problems in USB, 2.4.18pre4 has problems in one of the sound drivers). Important and mature packages like MOSIX require patching the kernel and aren't integrated into the kernel. Many hardware setups require recompiling the kernel and experimenting endlessly. Every time you recompile the kernel, you need to recompile some kernel modules. Dependencies and recompilation aren't working correctly--some things don't recompile when they should, and lots of things recompile over and over and over again. The kernel itself is a 30Mbyte download. And the list of problems goes on and on.

    People seem to have gotten used to it and think there is nothing wrong. The kernel hackers keep telling us that C and make are just great tools for building kernels. But as a user and sometime driver hacker, I think the kernel is falling apart under its own weight. This is not a system I can recommend to non-technical users--commercial distributions can't cover all the possible kernel configurations (even with fully modularized kernels), and recompilation is out of the question for many users. What is needed?

    • It must be possible to write drivers and other kernel modules that can be compiled separately from the kernel and work across many versions. Binary modules really should keep working across minor version number changes (2.2 to 2.4, for example).
    • As a consequence, it should be possible to package bits and pieces of the kernel separately. If I want the ACPI module, I should be able to install that with "apt-get install kernel-2.x-module-acpi". I should be able to download RPM packages from reiserfs.com and install them on (at least) any 2.4 kernel without recompiling anything.
    • It must be possible to write kernel modules with more safety in mind. There should also be some way to apply some memory protection to kernel modules when desired.
    • The build system needs to get fixed. There is no reason why adding or removing a module should result in a recompilation of the whole kernel. Maybe it's time to get rid of "make" altogether for the kernel.
    • The configuration system needs to get fixed. The kinds of questions it asks right now just cannot be answered by a normal user. In fact, there really shouldn't be much of any configuration: all the different options should be dynamically loadable. Yes, this even means MMX-optimized versions of some piece of code or other. And most of the drivers and file systems should be distributed in completely separate source packages, independent of the kernel. (The new configuration system treats the symptom but not the root case.)

    I think, ultimately, if the kernel wants to survive and be able to keep up with the world, it needs some kind of more flexible dynamic binding of functions at runtime. It also must allow people to start writing kernel components in languages other than C, foremost C++. No, C++ isn't the epitome of good language design, and, yes, people can write even more horrible code in C++ than in C, but C++ can really help with safety, security, resource management, and modularity.

    If those things don't happen, I think the Linux kernel will simply fall so far behind that it will get replaced by something else. And that would be a shame because the Linux kernel actually does have a lot of useful functionality, and once compiled and configured, works very well.

  11. Re:Au contraire by captaineo · · Score: 5, Insightful

    I definitely see this too... In fact I'm about to start a full crusade against shitty windowing performance. (long visible lags between exposure and repaint, very jerky moving/resizing, etc). These are very real issues on Linux/XFree86. I plan to go as far as shooting my screen with a 100Hz camera to really see what's going on, retrace by retrace.

    There are many links in the GUI chain, any of which can cause a problem. Roughly from top to bottom-

    1. Widget toolkit (GTK, QT, etc)
    2. Client painting library (GDK, QT, etc)
    3. Window manager
    4. X protocol
    5. context switches
    6. X server
    7. 2D video card driver

    The folklore seems to be that 4, 5, and 7 are the major problems - "the X protocol is badly designed, switching between client, server, and window manager processes is too expensive, and XFree86's video drivers are no good."

    In reality though, the problems aren't where most people expect. The X protocol is not generally a bottleneck, especially if the client programmer knows what he's doing (wait until the input queue empties before repainting anything, avoid synchronous behavior, double-buffer windows using server-side pixmaps, etc). The copy-and-context-switch overhead isn't too bad either (keep in mind that context switches are much more expensive on Windows, and Windows is the platform to beat for 2D smoothness!). And finally, many of the 2D drivers really do take advantage of all the hardware offers.

    The real culprits are turning out to be 1 and 3 - the tookits and window managers. Many of the Linux toolkits (especially GTK) have very advanced widget alignment/constraint systems that bog down when windows are resized. Some toolkits are doing naughty things with the event loop (painting while events are still in the input queue, or trying to "optimize" by pausing for new events), and most of them aren't fully double-buffered yet (though GTK 2.0 and recent KDE/QT are most of the way there). Window managers are some of the most horrific perpetrators of 2D crappiness. Some of them try too hard to snap or quantize window sizes and positions, resulting in jerky motion. Kwin seems to prolong expose/repaint cycles much more than necessary. And finally, I will make one criticism of X's overall architecture - I don't think separating the window manager from the X server was a good choice. The asynchronous relationship between X and the wm can cause nasty delays in window moving and resizing. (plus, all widely-used wm's have basically the same features these days; what's the use of having a choice? ;]).

    I used to think that the only way to get perfectly smooth 2D would be to embed the widget toolkit in the X server, so that it could handle repainting all on its own. Now I don't think one needs to go that far; it may just take a well-written window manager, and a similarly carefully-designed widget toolkit. (though it may be helpful for the server to mandatorily double-buffer every window - hey, video RAM is plentiful these days =)

    There are lots of issues I haven't investigated yet - for instance, I think Windows may be doing something interesting with vblank; dragging windows around seems to show a lot less tearing compared to X... Also, 3D OpenGL windows seem to cause much worse artifacting on both X and MS Windows. It's almost possible to bring an animating OpenGL program to a complete halt just by resizing the window, or dragging another window in front of it.

    It's an interesting problem, and I'm glad to see I'm not the only one who cares about it. I find it apalling that (to my knowledge) not one major 2D GUI system has been able to produce 100% correct results - i.e. every window correctly drawn on every single monitor retrace, even while dragging or resizing. Why should we settle for less than 100%?

  12. The real problem is... by rsd · · Score: 4, Insightful

    IMHO, the real problem is the stock kernel.

    It is commom to see that the stock kernel has lots
    of missing patchs to increase stability and as pointed out by
    Rik van Riel which was posted
    here in slashdot, Linus rejects
    random patchs which cause some areas of the kernel to not be "as good as it should".

    The VM is one part which Linus just got random
    patchs from Riel and rejected some of them randomically which made the VM suck so hard in
    earlier stock 2.4 kernels.

    OTOH, kernels shiped from distributions includes
    (at least it should) the missing parts and should
    be better than the stock kernel from kernel.org .

    I don't use Mandrake to tell how good their
    kernel is or is not. But I use
    Conectiva Linux and I know how good their kernel package is.
    Their kernel includes missing fixes that do not get over the stock kernel.
    Better of all, their kernel maintainer is

    Marcelo Tosati
    who maintains the stable kernel tree now.

    I think that we will see an improvement into new
    2.4 releases.

    The latest 2.4.17 kernels from Conectiva can be found in here .

  13. Why Linux? by evilviper · · Score: 3, Insightful

    I've always found it incredible how hypocritical SOME peole can be.

    The big arguement FOR linux up until recently was stability of the OS. With Windows 2000 (and XP I assume) it seems that Linux users are now the ones willing to put up with the more problematic OS, and for some of the same reasons Windows users clung to not-long-ago.

    Now my question... Why use Linux? It's that needlessly complex and clunky operating system in-between Windows/OS X.1 & the *BSDs. Windows & the *BSDs being far easier to configure than Linux, with the *BSDs being faster, more secure, more stable, and simply smoother (less clunky) all around.

    The *BSDs are PnP (no need for Kudzu) no kernel modules to be manually configured, and the configuration files are far simpler than ANY Linux distro (although you CAN use Sys V scripts instead if you are so inclined-anyone who uses the BSD-style scripts for awhile will not want to use anything else though).

    So I ask politely, hoping to avoid flames and rants... Why choose Linux? It's not the most stable, the most secure, the fastest, the most free, the easiest.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    1. Re:Why Linux? by orangesquid · · Score: 4, Insightful

      Actually, there's many reasons I still use Linux rather than BSD, but the chief one being:

      Linux is a buzzword, and being one, gets the benefits. When people talk about "non-Windows support," what jumps to mind is "Linux" even before "Mac" for many developers. Thus, there are many precompiled binaries, precompiled kernel modules, etc., that run under Linux. (I know BSD can run many Linux binaries, but what about kernel modules?) Additionally, many people are actively developing hardware drivers for Linux, but not so many for BSD.

      Plus, it's very easy to find support for various Linux-related problems, because so many people use it.

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    2. Re:Why Linux? by Codifex+Maximus · · Score: 4, Insightful

      > So I ask politely, hoping to avoid flames and
      > rants... Why choose Linux? It's not the most
      > stable, the most secure, the fastest, the most
      > free, the easiest.

      I like Linux would be the first answer that comes to mind. Linux is very stable, very secure, and quite fast, very free, and once you get to know it - very easy! Linux is all these things and more.

      Linux is stable - OpenBSD may be more stable.
      Linux is secure - NetBSD may be more secure.
      Linux is fast - BeOS may be faster.
      Linux is free - FreeBSD may be freer.
      Linux is easy - OS-X may be easier.

      Linux gives me all these benefits in one package AND the GPL'd codebase keeps getting richer.

      --
      Codifex Maximus ~ In search of... a shorter sig.
  14. hmm.. by talks_to_birds · · Score: 3, Insightful
    Me thinks there's one faint, common thread here:

    • "...upgrading a customer's server from Red Hat 6.2 to Mandrake 8.0..."

      "...when I upgraded from 2.2 to 2.4 (Mandrake 7.2 to 8.1), I had (still have) many stability problems..."

      "...I don't know what compelled Joshua to choose Mandrake, whose "bleeding-edgeness" usually keeps them a bit unstable and unpolished..."

      "...He's using MANDRAKE on a SERVER. For crying out loud, you don't use Mandrake on a server. Get something realistic like Slackware or Debian, and if you want to be a idiot use redhat, not Mandrake..."

      "...First of all, who would used Mandrake for a server. We are talking about an installation that is meant for a laptop environment..."

      "...i was running a 2.4 on mandrake 8.0 and had nothing but problems...."

      "...I've noticed that most of the comments both in the article and others complaining about the 2.4.x kernels and various stability problems are running RedHat [redhat.com], Mandrake [mandrake.com], and even Debian [debian.org] Distros..."

    huh..

    Perhaps we have a Mandrake issue, here, and not really a 2.4.x kernel issue, and certainly not, as the few M$ trolls have tried to suggest, a Linux issue...

    dunno..

    Food for thought.

    t_t_b

    --
    I'm on PJ's "enemies" list! Are you?
  15. Re:Au contraire by spitzak · · Score: 3, Insightful
    This is correct. The unavoidable flicker is due to the fact that the window frame is drawn by a seperate program (the window manager) than the contents.

    Other causes of flicker: multiple visuals (not a problem on most Linux XFree86 systems), and toolkits (fixable with double buffering and can be reduced though not eliminated by the programmer of the toolkit).

    I think the window hould be put into the toolkit. The window borders are no different than any other widget. In fact I believe far more code is expended trying to talk to a window manager than would be needed to do this in a toolkit (which already contains code to draw the buttons and borders). This would allow new ideas in window management to be experimented with, such as getting rid of the borders entirely.

    The system might provide a "Task Manager" (using the term taken from Windows) that any program creating a window would talk to. The program would indicate the task that window belonged to and the name of the window itself. The task manager would send commands like "raise this window" or "map this window" or "hide this window" to the program, and by watching the visiblity and positions of windows could provide pagers, icons, and taskbar type interfaces.

    I strongly believe that putting widgets into the server is BAD. If X had done this we would be using Athena widgets right now and X would look laughably bad. The fact that X can emulate Windows and Mac interface designs invented 10 years after X was is definate proof that keeping UI elements out of it was the best possible design.