by
Jorge Castro (mailto:jorge@whiprush.org)
One of the most difficult ideas for new Linux users to grasp is the seemingly
esoteric means by which graphics get displayed on the screen. Indeed, the
concept of different window managers and its architecture are utterly foreign to
many new users. Terms like X, X11, XFree, X.org, Xwin, and Composite get thrown
around, adding to the confusion. As Linux and other free operating systems
continue to evolve on the desktop, X continues to be an enigma to new users.
While we have looked at how both
KDE (http://arstechnica.com/reviews/004/software/kde-3.2/kde-3.2-01.html)
and
GNOME (http://arstechnica.com/reviews/003/software/gnome-2.4/gnome2.4-1.html)
interact with X during our last reviews, there has not been a real central point
of authority that dictates how the "Free Desktop" should take shape.
Enter
freedesktop.org.
A conglomeration of developers from multiple vendors, sponsors, and independent
desktop developers representing multiple projects, freedesktop.org
? spanning nearly 50 projects ? has quickly established itself as the
clearinghouse for interoperability in the Open Source landscape.
Earlier this year, a license change in the defacto X project, XFree86, forced
developers to look elsewhere for graphical support. Originally based on a fork
of the original XFree86 code, X.org's first "monolithic" release was embraced by
many distributions. Version 6.8, which is due next week, will be the last of its
kind, as X.org transitions to a more modular architecture.
This new modular architecture will allow the X.org team to release components on
a much more independent basis. The impact for end users will be a more robust,
and up to date graphical subsystem that will be flexible enough to meet the
demands of the modern *nix desktop. Confused yet? Don't worry, we've snagged
freedesktop.org's Release Manager, Daniel Stone, to break it down for us.
Ars Technica: Who are you and what do you do? How did you get involved?
Daniel Stone:
I'm a 18-year old first-year university student from
Back in 2002,
At the conference dinner at
linux.conf.au
2004, I was asked to do an xlibs release (later to be the fd.o release manager),
and was later gently prodded into code. A couple of months later and I'm hacking
X servers; it's a slippery slope, seemingly.
Within freedesktop.org, my main interest has been modularising X. While I've not
had as much time in the last couple of weeks to work on it as I would like, my
baby right now is debrix (see below). I've also worked on the modular xlibs
distribution a fair bit.
Can you explain how freedesktop.org, X.org, and their respective subprojects
interact? Who's in charge over there?
While freedesktop.org is, in many ways, a fairly loosely organized community
project, we're all really minions of
Havoc (http://ometer.com/);
he's kind of a guiding hand around the project. Most of the work within the
project is done within smaller, unitary project groups, such as X, Cairo, D-BUS,
et al; there isn't actually much work here that touches the project as a whole.
The platform comes close to that, but aside from that, it's basically
administration-type stuff.
X.Org (http://x.org/),
on the other hand, is far more structured; they have a Board of Directors, an
Architecture Board, and frequently have conference calls for both these two
groups, and a release group. This is also probably a reflection of the fact that
X.Org are very much a single group with a single direction.
freedesktop.org and X.Org have massive overlap in both goals and developer base,
so we interact fairly often. However, we're pretty much on the same page on
everything, so we rarely come up against one another as organizations.
In addition, we also spend a lot of time coordinating with various projects such
as desktop environments. One or all of myself, Havoc, Keith, Jim and others have
been present at this year's linux.conf.au (myself, Havoc,
Keith Packard (http://keithp.com/)),
FOSDEM (Keith), GVADEC (Havoc, Jim, Keith), OLS (all), and
aKademy (http://conference2004.kde.org/)
(myself); that's a fairly good record. We're always looking to get together and
get some good communication together with all the desktop guys, and try to
discuss moving forward with the desktop.
A while back, you
mapped out (http://fooishbar.org/daniel/blog/tech/x/xserverTrees-2004-03-12-00-21.html)
how different X trees related to each other and what was what. Can you update us
on the latest developments in each of these areas? What about "new" things like
Debrix/glitz/cairo? Can you break down the alphabet soup for us?
Hard ask!
What kind of reception did the X.Org 6.7 release receive among users and
developers? How many developers are working on the projects now?
X.Org seemed to receive a very positive reception; if you need evidence, look at
the extensive list of distributions using it (or planning to). We're very happy
with how the adoption has progressed.
There are roughly 10 active developers on the main X.Org project; between all
the X projects, that number expands to 15 or so.
X.Org originally planned on releasing X.Org 6.8 on or around the 25th of August,
which slipped by a week. This release intends to include the
Xfixes (http://freedesktop.org/Software/FixesExt),
Composite (http://freedesktop.org/Software/CompositeExt),
and
XDamage (http://freedesktop.org/Software/XDamage)
extensions. Can you elaborate on what that means for end users? Can we expect
this to bring performance improvements?
The most obvious impact of these extensions for end users is that all sort of
crazy tricks with windows become possible that weren't before. Window management
a
So, I can't really say what it will bring users
? right now, we have relatively simplistic uses of the extension, but as it
starts to be more widely-deployed, we certainly expect lots of crazy blue-sky
ideas to come out of the woodwork and be played
with. Some of them might crash badly, but some of them will surely be good! I'm
personally quite anxious to see what people decide to do with Composite.
Damage is pretty cool, especially as regards network usage: as network proxies
(e.g., VNC) begin to become aware of this extension, network usage will
potentially fall through the floor, because you only have to transmit areas that
you know changed.
Unfortunately, with all this stuff comes a slight performance cost
? if you're dragging around transparent
windows with movies playing under them, it's probably not going to be any
quicker than non-transparent. That said, we've been pretty conscious of
performance, especially with regards to how it plays with the acceleration
layer, so the performance impact shouldn't be too bad.
Are there any plans to work closer with vendors like ATI and NVIDIA to bring
better hardware support to the platform? How willing are they to cooperate? Are
any of their employees working on freedesktop.org projects? And if so, how
significant are their contributions?
We're always conscious of our relationship with vendors, and are always willing
to cooperate with anyone. In particular, Tungsten Graphics released DRI drivers
for Intel's i915 chipset before the chipset was even released to the public in
any tangible form, and this support was rapidly merged into our mainline branch
? this was a particularly good example of vendor cooperation.
As regards ATI and NVIDIA, both vendors feed us back to us in a timely fashion.
For instance, I believe a patch from ATI was merged last week providing support
for a whole raft of new cards.
How important is it for X.Org to maintain backwards compatibility with XFree86?
Will, for example, a change in Xorg break the interoperability with binary
drivers, such as the NVIDIA drivers?
Unfortunately it's very hard to retain backwards compatibility with stuff like
the Composite extension, which changes some structures and functions quite
radically. That said, we've certainly had a very close eye on backwards
compatibility, and have actively worked to keep as compatible as possible with
old drivers.
IN conjunction with the X.Org release, it looks like freedesktop.org plans to
release the freedesktop.org Platform 1.0. Can you elaborate on what this is
supposed to be? What are the components of the platform? What is the roadmap and
schedule? Why is it needed?
The platform release is actually scheduled to happen at the end of this week
[August 27] or the start of next week, while the X.Org release will happen as
soon as the major release-blocker bugs are resolved
? it's a busy time over at freedesktop.org, with nary a developer to spare.
The platform is just a collection of libraries and specifications whose presence
developers, distributors and ISVs can rely on when considering the overall free
desktop as a platform.
There are a few gaping holes right now: there is no baseline that desktop
projects can rely on (e.g., the presence of given libraries), or ISVs (which
specifications to target and the same problem with libraries), and also even
distribution vendors. By having a baseline to work from, we're hoping to work
towards solving these problems.
Are your schedules time or feature-based? Do distributors like Fedora and SUSE
have any impact on how and when Xorg and freedesktop.org releases software?
The upcoming X.Org release was time-based, and a significant influence on the
date chosen was Fedora Core 3's release date; the platform works on a solid
six-month release cycle. The release cycle for the next X.Org release hasn't yet
been chosen, but it will almost certainly be time-based, rather than
feature-based: time-based releases have shown their superiority over
feature-based cycles in recent times.
You're also a member of Debian's X Strike Force. Once Sarge is released, what's
the plan for Debian?
Once Sarge is out the door, we have a reasonable amount of time before we have
to freeze X again (it's already frozen for Sarge), so we have a pretty fair
amount of time to think about the future. We're one of the few distributions
still back on XFree86, so we're not tied to modular or monolithic, which means
we have the luxury of sitting back and evaluating each on their merits.
In the coming weeks, we'll certainly be looking closely at all our options, and
deciding where to go from there.
How closely do you work with GNOME and KDE. How have the projects adapted to
freedesktop.org's initiatives? Who is "upstream", you or them? Is this
relationship as successful as it can be? Have developers reacted to the "freedesktop.org
as an umbrella" idea?
We work closely with anyone who wants to work with us
? it's that simple. As the Linux desktop space is more than just GNOME and KDE,
we're conscious of that fact, and anyone, whether they be from GNOME,
WindowMaker, XFce, or whatever, is welcome to come and help out, and shape our
directions.
So far, we've had a pretty positive reaction across the board, but we would
certainly encourage all the projects to continually approach us with things they
believe could/should be standardised
? code, specs, or both ? and also to try to make use of emerging technologies
such as D-BUS,
What about cooperation with individual project kernels? Can you describe the
relationship that freedesktop.org hackers have with the Linux and BSD (and
whoever) hackers? How easy is it for you guys to "get things done" in that
space?
We have a pretty good relationship with all the kernel guys, mostly. For
example, at the Ottawa Linux Symposium recently (which is quite heavily
kernel-oriented), myself, Keith Packard, Jim Gettys, Jon Smirl and Ian Romanick
attended. Keith gave a talk at the Kernel Summit which was quite well-received,
and kicked off interesting discussion, on dealing with devices in userspace vs
kernel space.
The 3D question in particular has long been an interesting exercise in userspace<->kernel
cooperation, and we're moving to become more reliant on the kernel for tasks X
has traditionally performed. Because of this, I think we'll see a lot of people
who will suddenly be hacking on the kernel rather than X, because (one of) their
area(s) has moved to the kernel, and this will help even more.
What other areas do you see freedesktop.org expanding into in the "Linux
desktop" space?
Not so much "Linux desktop" as, well, "free desktop." :) I think with the
emerging technologies we have
? D-BUS, Cairo, HAL, X, etc. ? as well as the platform, we have most everything
covered.
How can budding X developers get information about contributing to
freedesktop.org?
The easiest answer I can give is, sadly, quite cliched. Join the lists (http://freedesktop.org/mailman/listinfo/xorg),
get involved, see what needs doing. Even if it's just trivial fixes to the build
or something, it's a good way to get involved, and familiar with the code. We
also have a Bugzilla (http://bugs.freedesktop.org),
which has a whole bunch of juicy bugs just waiting to be fixed.
For the less code-inclined, there's always lots of documentation to be written!
Manpages need to be written, documentation needs to be released Xorg 6.7.
converted from random archaic formats to DocBook, et al. This is one area that
really badly needs some love from those with the requisite skills.
* * * * *
To the outside, the entire graphical landscape of X might seem confusing. The
freedesktop.org and X.Org road maps bring cohesiveness to the Free Desktop. Once
a loose conglomeration of separate projects, the recent freedesktop.org efforts
have unified many aspects of "Linux" that once seemed too diverse to bring
together. Linux and BSD users, regardless of their choice of desktop (GNOME,
KDE, and others), can now enjoy a unified infrastructure that moves the entire
desktop into the modern age, in-line with the recent advances of Mac OS X and
Microsoft's upcoming Longhorn release.
It is difficult for users to really judge the difference that a unified platform
can bring to the table without trying it themselves. Fedora Core 3, due October
25, will probably be the first major distribution to bring these changes to the
masses. As projects continue to align themselves around freedesktop.org, we
expect that the momentum of the platform will bring improvements to one of
Linux's traditionally weak areas. Feel free to join
our discussion (http://episteme.arstechnica.com/eve/ubb.x?a=tpc&s=50009562&f=96509133&m=897003555631)
on the upcoming release.