|
|
Subscribe / Log in / New account

Leading items

The X Window System, past and future

The Jargon File defines X as "An over-sized, over-featured, over-engineered and incredibly over-complicated window system developed at MIT and widely used on Unix systems." The Unix Hater's Handbook states: "X Windows [sic] is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed." The "fortune" program shipped with most Linux distributions contains six extended diatribes against X, with delightful tidbits like: "The trailing edge of software technology.", "The greatest productivity aid since typhoid.", "You'll envy the dead.", and "Making the world safe for competing window systems.". And those are just from the first of six. The last dig quoted above is interesting, though, when confronted with one little fact: there are no competing window systems.

Most LWN readers will be aware by now of the current dispute over the direction of the XFree86 project. The next article will look at what is going on there, but, first, it's worth taking a moment to look at the absolute monopoly that X holds on Linux (and Unix) desktops.

As free software projects go, X is one of the older ones. The first X release, built with support from the company then known as Digital Equipment Corporation, came out of MIT in 1984. By the time X10 was released, the window system was beginning to be widely used outside of MIT, but it was X11 (released on September 15, 1987 - you could order it on nine-track tape) that established X as the definitive Unix windowing environment. Several vendors, wanting to support the continued development of a vendor-neutral windowing system, formed the X Consortium to further support development in 1988. The Consortium eventually lost its relevance when the Unix vendors decided they wanted to start "differentiating" their window systems, and the XFree86 project became the real core of X11 development. That, of course, is how things stand today.

X11 is certainly one of the longest-lasting major releases in software history; more than fifteen years later the X11 protocol maintains backward compatibility, and there has never been an X12 release.

Since the early days, X has been the target of severe criticism. Attackers claim that it is over-engineered and bloated. Its absolute refusal to dictate policy (or even provide a standard window manager) has led to wildly incompatible interfaces on the same desktop. X requires applications to deal with too much information about the underlying hardware. The network-based client/server protocol is slow and has led to security problems. There is no way to load code into the server itself. The server doesn't even maintain window contents, forcing applications to deal with "expose" events. And so on. X, it is said, is "vacuumware," it sucks, but succeeded because there was nothing else out there.

The above criticisms are, beyond doubt, not entirely lacking in merit. But the fact remains that X is the only viable windowing system for Unix-like systems. It pushed aside numerous proprietary systems (SunView was halfway out the door before Sun officially switched) and established itself as the standard across an amazing range of systems from different vendors. If X were truly that bad, a viable competitor would certainly have arisen in the 15 years since X11R1 was released. The few attempts (your editor once had the unfortunate experience of trying to program a project under NeWS) have sunk without a trace.

Why has X been so successful? Here's a few possible reasons:

  • X actually does pretty well at hiding hardware details for many applications. But the ability (and, occasionally, requirement) to deal with the hardware allowed the writing of applications that behaved optimally on a wide range of systems.

  • The X client/server protocol was unique; it enabled the separation of applications from the desktop where their interfaces were displayed. If you were a system admin who suddenly could easily monitor several servers on one screen, or a scientific user who could run supercomputer visualizations from your desktop, this was a big deal.

  • The refusal to set policy allowed a great deal of experimentation in user interface policies. Lots of bad ideas (i.e. tiling window managers, Motif) were tried and discarded without having been wired into the window system itself. Even now, X provides a platform where competing visions of the desktop can be implemented and tried out.

  • The built-in extensibility of the X11 protocol has allowed it to evolve over time without breaking compatibility with older applications.

  • It works, and has for a long time.

Of course, one should not forget the other important reason why X succeeded back in the 1980's: it was free software.

So now X dominates the non-Windows desktop. Given the extent to which some people criticize X, one would assume there would be a whole set of development projects working to replace it. The fact that X works well and the existence of a large set of existing X applications present a daunting challenge to any potential replacement, however. Without a compelling reason to change (and rock-solid X compatibility), users are likely to remain with X for quite some time into the future. So it is not surprising that free software projects working on X replacements are not easy to find. There just isn't that much of an itch to scratch.

One group that is trying, however, is the Fresco project (formerly known as "Berlin"). Fresco's approach differs from that of X in many ways: user interface policy will be wired into the window system itself; more advanced rendering will be supported by the server; the API will be based on vector operations and will be resolution-independent; CORBA will be used as the network transport; and the whole thing will be built with heavy use of threading in mind. Potential users will need to be patient; according to the web site, "Fresco is only useful for demos (really cool demos though :)". Fresco announced its second milestone release on March 4.

Someday a project like Fresco may well succeed in displacing X from our desktops. Someday. Meanwhile, X will remain one of the crucial components of free operating systems like Linux. So the current disagreements over the direction of the XFree86 project are important.

Comments (17 posted)

The Future of XFree86

[This article was contributed by Joe 'Zonker' Brockmeier]

Sometimes a good argument is necessary to get everything out in the open and to make a little progress. That seems to be the case with the current XFree86 controversy.

If you haven't been following it, the furor started when XFree86 developer Keith Packard was ousted from the Core Team. Apparently, Packard was trying to start a fork of the project without discussing the issue with other Core Team members first. After the dust had settled, somewhat, the XFree86 Project's board issued an open invitation to discuss "Any topics...from those related to administrative and management issues through to technical issues." In just eight days, more than 700 messages have been sent to the list. A lot of ideas have been thrown around, including a joint statement from the GNOME and KDE projects.

Packard has now made public some of his complaints with the current status of the XFree86 Project. His "A Call For Open Governance Of X Development" posits that there are a number of problems with development of XFree86. Specifically, Packard writes that XFree86 suffers from limited development resources, slow release schedules, a lack of cooperation with other projects and a lack of information on how to get involved with XFree86 development. Packard concludes that XFree86 needs to be a community-governed project.

The XFree86 Project has already responded to Packard's complaint that there is a lack of information on becoming a developer by adding a prominent link to the front page titled "How to become an XFree86 Developer." Short and to the point, it nevertheless provides some guidance for interested developers: "Get and build the latest XFree86 code from the CVS repository, subscribe to the XFree86 developer list (devel@XFree86.org) and participate."

David Wexelblat, one of the Core Team members, notes that the issue of infrequent releases, at least in terms of card support, is a non-issue:

I will ALSO point out for the record that ever since we did the loadable driver thing, there is NO NEED for XFree86 to put out a release to get new device support (or so the theory goes). The card vendors can do it. Nvidia does it, and ATI does it, right? Yes, there is more work to do on ABI-type issues to make this work better, but the drivers are not built into the server binaries any more.

David Dawes, head of the XFree86 Board of Directors and leader of the core team has committed to tagging regular snapshots, every two weeks, of the CVS trunk. This doesn't address the question of more frequent stable releases, but it should provide a way for more people to be involved in testing XFree86 and providing feedback.

Wexelblat also disagrees that XFree86 should be community-governed. "There is no reason to change the meritocracy, other than to work on promoting sufficient people through it, of sufficient skill/quality/integridy [sic] to get the work done." Rich Murphey, another member of the XFree86 board, agrees that "sweat equity" is the best way to have influence on the direction of the project. "Join devel, write code, join core. That's how it works...I don't see a more effective solution than that."

Both Packard and Wexelblat agree that XFree86 could benefit from additional resources. Wexelblat raises the issue of poor support for XFree86 by commercial companies:

Another thing to note is that XFree86 has dramatically less commercial support than just about any "cornerstone" Open Source project. Maybe that's because of our "meritocracy" and focus on individual contributors; I dunno. I know that these companies have LOTS of people working on Linux kernels, databases, desktops, whatever, and bloody few pay very many to work on X. So it mostly falls to a very small handful of people. Who are pretty much volunteering, and doing what they can when they can...For many of the things commercial entities complain about, I say "put up or shut up".

Given the importance of XFree86 to the long-term success of Linux on the desktop, now might be a good time for some of the Linux companies to step up support for XFree86. It seems clear that, regardless of other changes, XFree86 development will remain a meritocracy. However, the attention now being focused on the project is likely to produce some long-term benefits despite the initial unpleasantness.

Comments (8 posted)

Quick LWN update

Time flies... it is now six months since LWN began the subscription experiment. How do we know? Many of you signed up for six-month subscriptions, and those are now expiring. If you are one of those, it's time to be thinking about renewing; remember that prepaid subscriptions of ten months or longer get a 10% discount.

LWN's subscribers are the only thing keeping this site on the net; we thank you for your support.

Comments (15 posted)

Page editor: Jonathan Corbet
Next page: Security>>


Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds