The X Window System, past and future
[Posted March 25, 2003 by corbet]
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.
(
Log in to post comments)