The Jargon File defines X
"An over-sized, over-featured, over-engineered and incredibly
over-complicated window system developed at MIT and widely used on Unix
" 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
" The "fortune" program shipped with most Linux
distributions contains six extended
against X, with delightful tidbits like:
"The trailing edge of software technology.
"The greatest productivity aid since typhoid.
"You'll envy the dead.
"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
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
- 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
- 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
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,
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)
[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
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)
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
Inside this week's LWN.net Weekly Edition
- Security: XDR vulnerability; new holes in evolution, kerberos, mutt, ...
- Kernel: dev_t expansion, short topics, the BIO structure.
- Distributions: The Significance of Red Hat Linux 9; New: Damn Small Linux, LinuxConsole
- Development: OpenOffice 1.1 beta,
New versions of ALSA, PyJack, Speex, omniORB, MySQL,
Foomatic, Analog, Quixote, heartbeat, Audacity, ecasound, KDE,
Sawfish, GIMP, wine, AbiWord, Balsa, Evolution, SBCL.
- Press: Hacker leaks security flaws, Open Source in Government Wrapup,
Linux on Centrino, German town moves to Linux, PHP security checks,
2.5 kernel testing.
- Announcements: UK Python Conf 2003, Tcl/Tk Conf CFP, Linux in Education Spring Conf,
Zope3 UK Sprint.
- Letters: XFree86, Red Hat update