Thursday May 27, 2004

The difference between Xorg and XFree86

I've had to answer this question a bit lately, so I figure I might as well post the answer I wrote up for the solarisx86 yahoogroups list here as's a bit disjointed being the merger of two posts to two lists, but hopefully it answers the questions most people have.

What are the differences between Xorg and XFree86?

From a technical standpoint, right now, not much - X.Org's X11R6.7.0 release and XFree86's 4.4 release are very very close to the same code. The biggest difference between those two releases is that XF86 4.4 contains code that is covered by the new XFree86 license 1.1, while X.Org does not.

The real difference is political/organizational/emotional. Starting with the expulsion of Keith Packard (author of the Render, Randr, and Composite extensions, among others) over a year ago and culminating a few months ago with the changes to the license, XFree86 has increasingly alienated some developers and distributors, and polarized the community. (They are fully within their rights to make the decisions they have, even though they are unpopular, but the result is that people are turning away because they disagree with them and/or the implications of them and how they were made.)

As a result, the once moribund X.Org (the industry group that was the successor to the MIT X Consortium in producing the main X11 releases and managing the standards) was revitalized and reformed as an open source foundation, and many developers & distributors have joined it and plan to use it to replace XFree86.

While Sun has no official, formal statement on the matter, I can repeat here what I said on the mailing list today:

I see that you work for or are associated with Sun Microsystems. Has Sun decided whether to use releases instead of XFree86 releases or not? I'm guessing that with the way that you have written that statement, they've made their decision to use releases.

Yes, I work for Sun, in the Solaris X11 group (specifically the group responsible for the DIX layer of the X server on up to client libraries and core clients like xterm/xhost/xauth/etc., but we don't do DDX'es). I can tell you what we're doing at Sun, but remember, I'm an engineer, not a spokesman, so this is my view of the work we're doing, not an official corporate statement of direction or anything like that. (Hopefully this is obvious in all my posts - I speak for myself, not Sun - but the lawyers get ancy if I don't point that out sometimes.)

Sun's X server for Solaris has always been based on the X Consortium/X.Org releases, and we continue to follow that. (\*) We had brought in some features from XFree86, such as XRender and driver support, while the X.Org releases were moribund - but those features are now in X.Org as well. Whether we continue to pull in features from XFree86 in the future depends on how XFree86 evolves vs. how X.Org evolves, but right now there's nothing in XFree86 we need that's not in X.Org, but several of the new extensions under development by people working with X.Org are things we need for projects like GNOME Accessibility and Project Looking Glass.

Sun has always been a sponsor of the X Consortium/X.Org and continues to be a sponsor of the X.Org Foundation. We have contributed code back to X.Org for years and continue to do so.

For our Linux releases, we ship whatever the distro ships for X. For Linux server products, that's RedHat & SuSE's enterprise server lines. The Java Desktop System Linux Edition is currently based on the SuSE Linux Desktop distro, and simply ships the X server SuSE provides in that. (In the current releases, that's XFree86 4.3.0 since that was the current release when SuSE put together SLD 1.0 last year.) Whether or not that will change in the future is something I can't comment on since those decisions are made by the Java Desktop System group, not my group.

(\*) Yes, historically speaking the Sun releases were originally very loosely based on the Consortium release when we shipped X11/NeWS, but that died long ago and we have been working over time to bring our releases more in line with the open source releases, and continue to do so.

The one note I'll add here is that at XFree86, to submit changes we filed entries in bugzilla and hoped one of the developers felt like integrating the changes. The Core Team, which set their technical direction, was closed and not public.

At X.Org, most of our developers now have direct access to commit changes to CVS, and I've already committed several fixes that make it work better on Solaris and with the Sun compilers (a couple made it into the 6.7.0 release, the rest are in the CVS head for the next release). Others on our team are working in experimental CVS branches on features that we're helping with the community development of that will be needed for GNOME Accessibility and Project Looking Glass - and all the discussion of these future plans has happened on public mailing lists, at the recent X Developer's Conference which was openly broadcast on the internet and at conference calls with publically posted access numbers.

Tuesday May 25, 2004

Infoworld honors Project Looking Glass creator

The Sun home page has an interview with Hideya Kawahara highlighting his recent selection by Infoworld as one of their "Innovators to Watch in 2005."

I got a chance to talk with Hideya quite a bit at the recent X Developer's Conference and he's actually a really nice guy, and seems almost embarrassed by all this attention over what started out as a spare time hobby-type project. I know a lot of people, including me, have wondered how 3-D will enhance the desktop, and even put down efforts to do so as just causing unnecessary complexity and confusion for users, but Hideya and the Project Looking Glass team are actually working to make this much more than just eye candy and improve usability. Hideya's also the first to admit they don't actually know exactly how this will best be used, but they're providing the framework so others can build and explore and innovate and surprise all us skeptics.

Wednesday May 12, 2004

That's a sunrise, not a sunset...

At least that's what I'm going to claim the photo at the top of my blog is, since I chose this new theme simply because I liked the photo and the look of the blog skin, not because of any symbolism. (Though I suppose I could try to claim something like before every sunrise there is a sunset, so it's just part of the cycle, like the ebbs and tides of the economic cycles, but thats putting way too much thought into it.)

After playing with the themes, I've now realized it's been a well over a week since my last blog post - though it almost seems longer since it was such a long week - mostly spent doing mind numbing paperwork, writing project specs and design documents for our architectural review committee, answering the endless stream of e-mail, and even doing a little coding. (I guess I've really crossed over from Programmer to Engineer since it seems I spend less than a quarter of my time actually working on code these days, and more than that each week in various meetings and conference calls.)

I did get a chance to dig into the SolarisIA X extension a bit and even did a quick port to the Xorg server that seems to work and which helped me better understand what the code does by forcing me to track down and understand all the different parts of the server it has to interact with. I don't know if we'll offer that back to the open source release, since it depends heavily on the SVR4 priocntl API's and the Solaris kernel scheduler support for the IA (interactive) process class. It would be interesting to see if on today's much faster machines, it still makes a big difference by boosting the priority of the process that currently has focus and compare against the original test results presented at the 1993 Usenix conference, but alas, that's time I don't have right now. The Sun Ray performance people do seem to believe it still makes a positive impact on Sun Ray servers where many users are sharing the CPU, so there's still at least some need for it today.

Monday May 03, 2004

A life lived on Usenet?

A recent blog by Alec Muffet on his Usenet history inspired me (well, gave me an excuse to procrastinate, but close enough) to see what I could find of my own history - the oldest archived post Google Groups seems to be able to find for me is this post to comp.sys.mac.system on Nov. 7, 1990, which would have been my first semester at Berkeley. (Amazingly enough, one of the two e-mail addresses in my .sig will still reach me, though I don't check it very often, since it's almost all spam now. I ended up sysadmin'ing both of the machines in my sig and decommissioning them as well, though the names were recycled.)

I think I may have posted earlier to Berkeley-local groups that aren't in the google archives, but it wouldn't have been much before this I was brave enough to get past the Pnews dire warning that

This program posts news to thousands of machines throughout the entire civilized world. Your message will cost the net hundreds if not thousands of dollars to send everywhere.
Of course, I got over it, and must have cost the net billions by now (though probably a fraction of the costs of spam), as google easily finds over 8,000 posts since then, and I wouldn't be surprised to find out there have been many more.

You could probably find trends of my life via my posting history - my heavy comp.sys.mac.\* involvement in the early days, waning off as I got more into Unix, first in comp.sys.apollo as I joined the volunteer student staff running the Apollo workstations of Berkeley's Open Computing Facility, later comp.unix.solaris and the comp.sys.sun newsgroups as the OCF got sparcs and then I got a summer/fall job as a contractor in SunService. You might also see I was heavily involved in comp.infosystems.gopher for a while, as I both ran the OCF gopher server and then contributed to the UMN gopher server code. But eventually gopher waned and I followed the rest of the net into comp.infosystems.www.servers.unix, as I ran several NCSA httpd sites at Berkeley, then became an early adopter of Apache. As I converted to spending more time coding and less time webmastering, I slowly dropped out of those groups, and now my focus is so obvious, the google groups search for my name starts out with a "Related Groups: comp.unix.solaris" link.

I can only wonder what I'll find after 14 more years or if Usenet will have even survived that long...

"Insights From A Solaris x86 Evangelist"

Hey, it's Alan! No, not me, Alan DuBoff, Solaris x86 Evangelist and Community Liason, who is now featured in an interview on the Sun.COM website.

(It's always so confusing when I go to one of the installfests he runs to help get Sun users laptops & PC's converted to Solaris x86 and people start calling out "Alan help me!" It probably doesn't help when people tell those needing help to "go find Alan - the big guy with dark hair, glasses, and a beard" - since that describes both of us.)

Sunday May 02, 2004

X Dev Conference, part 2

Back from the conference now and trying to finish putting together all my thoughts while fighting jetlag and a nasty hay fever/allergies attack.

The final day went through toolkit and other client-sides issues in the morning, including talks on Cairo, Motif (yes, it is still alive!), and GTK.

Cairo is a new graphics rendering library, based on a PostScript-like model but designed to support SVG easily and well. It's not reached widespread adoption yet, but looks like it may within the next year or so, as there are people working to use it in GTK, Mozilla (for SVG at least) and Carl Worth, who created Cairo, wrote a new slideshow viewer program for his laptop using Cairo the night before his presentation. It was also amusing (and when you think about it, somewhat amazing) that during his presentation, when Keith pointed out he was demoing the old version of the fdclock, which has some bugs drawing shadows, that he could simply pull the new source from the CVS server at, rebuild it, and re-run the demo app in just a minute or two.

One of the big topics in the GTK talk was performance, which aligns nicely with various investigations we've been doing at Sun in GNOME desktop performance, especially on large Sun Ray systems. Owen Taylor pointed out that the traditional x11perf benchmark tool is not very useful for tuning X to work well with GTK - it tests hundreds of things that GTK never does and doesn't really test some of the things it does do. (Mainly GTK's use of X drawing routines involves drawing solid rectangles, images, and text.) They need benchmarks that better simulate what GNOME apps do. They have dug out some things that were poorly designed and fixed them - especially the work they did with Jim Gettys to reduce the number of needless round-trips to the Xserver to reduce latency. They complained about not having a good set of tools to find these issues, at which point I just had to mention how useful the DTrace facility of Solaris 10 is, and how its already been used to help in this area, by tracking down some pathological behavior in the GNOME stock ticker applet (see section 9 of the DTrace Usenix paper (PDF) for the story behind that).

The other big issue Owen mentioned was X extensions - currently there are about 8 GTK uses, and they all have fallbacks if not present. He pointed out the beauty of an extension does not matter - it will be used if it provides obvious benefits to users that applications can't do themselves. XKB is a good example of this - it's hairy and messy, but useful, so it's used. He also pointed out that "if it's not deployed, we can't use it." There are various implications here that we may need to think about in our STSF project.

Peter Winston, of Motif consulting/training/development/tools firm ICS gave an interesting talk about what is going on in the Motif and OpenMotif world. He pointed out that while Motif may not be sexy or cool, it's still heavily used as there are millions of lines of code written using it and many programmers experienced with it, and those are both still being put to use, both on existing legacy projects and even some new projects. He claims that they are seeing many of their customers migrate to Linux, not because it's free (without cost) or free (GPL/etc.), but because they want commodity hardware and want it to work. (Which of course caused the Sun zealot in me to want to scream out "That's why we have Solaris x86!" but I behaved myself.) They have also seen migration away from Motif in several waves - first to Windows, then to Java, now to Qt.

Peter gave a mantra that is very familiar to those of us who work on Solaris - he says the three top concerns of software developers for the API's they use are:

  1. Don't break anything
  2. I really mean it - Don't break anything!
  3. Give me API's I can count on.
He admits a big mistake in the first release of OpenMotif they did was breaking binary compatibility. They are working on new features for OpenMotif while trying hard to stick to those 3 rules. New features coming in include support for UTF-8, Xft2, wheel mice, modern image formats, and accessibility (based he says on "Sun's work for gtk" - go Sun!).

The conference concluded with talk on the "big picture" of X (at least that was the wrap-up session, unfortunately we had to leave before it finished to catch our plane). It was noted that the barrier to entry to free desktop development is still high, for many reasons, including:

  • Mostly written in C, while many programmers today are more familiar with Java or Visual Basic
  • Not much developer-related documentation, especially not in the developer's native language if that isn't English
  • Need overview documentation of the whole system (i.e. which lib should I use to load images in a GNOME app, imlib or gdk-pixbuf?) There should be a simple checklist of what it means to be a well behaved application (i18n support, accessibility hooks, etc.)

My "big picture" summary would probably be that there are more people working on X & related Linux/Unix desktop projects today than there have been in a long time, and they are mostly happy to work with us as long as we learn to work with them. There were definitely mixed feelings towards Sun - they like what we've done in the GNOME world, especially with the work we've donated on documentation, accessibility and globalization, but they aren't too happy about the Java license and open source issues there. They are thus apprehensive about Looking Glass - they're excited by it and would like to work with/on it, but to do so, would want the interaction to be more like what the GNOME team does and less like what the Java group has done. (Of course, this is all sweeping generalizations, as the community has very diverse opinions, but "they" above is the general feeling I got from most of the people at the conference and in the IRC #xdevconf channel.)


Engineer working on Oracle Solaris and with the X.Org open source community.


The views expressed on this blog are my own and do not necessarily reflect the views of Oracle, the X.Org Foundation, or anyone else.

See Also
Follow me on twitter


« May 2004 »