return to first page linux journal archive
keywordscontents

XSuSE--Adding More to the XFree86 Offerings

In mid-1997, S.u.S.E. started to release a small family of X servers, called XSuSE, based on XFree86 and freely available in binary form. This paper explains who is involved in doing this, why we are doing it, what exactly we are doing and what will happen next.

by Dirk H. Hohndel

XFree86 is the freeware (or Open Source software) implementation of the X Window System for PCs running UNIX-like operating systems. XFree86 is largely independent of Linux. It was started as a freeware project in early 1992, shortly after X11R5 was released. At that time Linux was in its infancy, and the initial platforms supported in XFree86 were commercial UNIX implementations such as ISC SVR3 and Dell SVR4. However, by mid-1992, XFree86 was ported to Linux as well, and today the vast majority of XFree86 users are running Linux as their operating system.

Released in September 1991, X11R5 was the first official version of the X Window System that included support for PC UNIX systems. X386 had been donated to the X Consortium by Thomas Roell, who back then was working for SGCS, a consulting company that, among other things, offered commercial X servers for PC UNIX systems.

Unfortunately, the public fixes for X11R5 did not address the performance and stability problems which made X386-1.2, as included in X11R5, almost unusable for most owners of PCs running UNIX. The lack of patches to X386 brought a group of four people together with the intent to enhance X386. David Dawes, Glen Lai, Jim Tsillas and David Wexelblat started what they thought would be a small project for others to use. In July 1992, they released X386-1.2E.

Soon it became obvious that this project, creating a usable freeware implementation of X, would be much more than just an enhancement to X386, so the name of the project was changed to XFree86, indicating the (as we now know, initial) platform that the software ran on and the team's central goal of providing a freely available implementation of the X Window System.

Since then, there have been about a dozen releases of XFree86. The latest is XFree86-3.3.2, released in March 1998. The number of supported cards is hard to keep track of; the number of cards and chip sets not supported by XFree86 is surprisingly small. XFree86 runs on most of the currently available UNIX-like operating systems on PCs. Besides Intel x86, Digital Alpha, Motorola Power PC and 68k are supported platforms with others in the pipeline. The number of people actively involved in the project is now close to 300.

This is quite a change from the small project started by the ``Gang of Four'', as the initial founders of XFree86 were sometimes called.

In 1994, the X Consortium was working on X11R6 and the XFree86 team decided to participate in that development. In order to make that possible, a legal entity able to join the X Consortium was needed, and after discussing the alternatives, a non-profit corporation called The XFree86 Project, Inc. was founded.

This corporation is still maintaining the code and organizing the development of XFree86. I am a member of the XFree86 Core Team and Vice President of The XFree86 Project, Inc.

S.u.S.E. GmbH was founded in 1992, coincidentally the very same year XFree86 was started and Linux became more widely used. Since 1993, S.u.S.E. has been selling Linux distributions, first on floppy disks, later on CD-ROM. The latest release of S.u.S.E.'s Linux distribution, S.u.S.E. Linux 5.2, comes on four CDs with a detailed handbook and 60 days installation support. S.u.S.E. Linux is available in German and English versions; other national versions are under development.

Currently about 50 people are working at S.u.S.E., serving more than 100,000 customers worldwide. S.u.S.E. offers professional support, training, pre-installed and configured hardware, consulting and software development for Linux-based systems.

S.u.S.E. is committed to actively furthering freeware development and to supporting the Linux community.

Why

The XFree86 development model has always been a bit different from the philosophy used in large areas of Linux development. The main difference is that only a small group of developers (currently about 300) has direct access to the most current sources. This development team creates rather well-tested releases of XFree86 which are then distributed, in source and binary form, to the general public.

There are many reasons for this setup. Among the more important is the support load that a system like XFree86 creates. Configuring XFree86 is difficult for many people, and setting up PC hardware can be quite challenging. Therefore, a significant number of users have questions or need help configuring XFree86. Making a rather small set of releases available to the public makes it possible to have a reasonably good idea as to which software is actually running on the system of someone who asks for support. Trying to support arbitrary development versions is simply not possible.

Additionally, there is a slight risk that development versions of the software may contain code that could damage the hardware. Today's monitors are far less sensitive to over clocking, and other components are more robust as well, so this argument is slowly losing its basis.

Nevertheless, the development model of XFree86 is still the same and not likely to change any time soon. It results in somewhat long intervals between new releases.

On the other hand, the generation cycle in the graphic-card industry is getting shorter and shorter, and the number of new cards and chip sets appearing on the market is growing rapidly. The shelf life of many cards is reduced to 6-9 months. This rapid turnaround in the graphic-card market means that many of the well-supported cards in XFree86 are no longer available, and many newly available cards are not yet supported in XFree86.

As a provider of a Linux distribution, S.u.S.E. is obviously interested in having available the best hardware support possible for its customers. In order to achieve that, there is a long-standing and very positive relationship between S.u.S.E. and The XFree86 Project. As part of this relationship, S.u.S.E. donated money as well as equipment to XFree86 in order to further the development of XFree86 and to make sure new versions of XFree86 can be released in a timely manner. Since 1995, S.u.S.E. has paid developers to work on XFree86 development, and in 1997 I worked almost full time on XFree86 for nine months while a S.u.S.E employee.

Even so, this help has only partially reduced the problems of XFree86 in keeping up with the new hardware appearing on the market.

What

In mid-1997, Elsa AG, one of the many graphic-card vendors actively supporting XFree86, suggested they could help develop a server for their new line of 3DLabs-based graphic cards. Since documentation for these cards was only available under a non-disclosure agreement (NDA), S.u.S.E. agreed to do the development and to donate the server back to XFree86 as soon as the NDA was lifted. (Unfortunately, this has not happened yet, which is the only reason this code was not integrated into XFree86-3.3.2.)

After a few months of development, S.u.S.E. made the first server for Elsa's cards, XSuSE_Elsa_GLoria, available. This marked the beginning of the small family of XSuSE servers. The server quickly became very popular, and over time was extended to support many non-Elsa cards and updated to support newer chip sets from 3DLabs. A major share of the development of this server was done by S.u.S.E. employees, but other XFree86 developers contributed significantly as well.

The motivation for doing more than just this one server came from the fact that Matrox released the documentation for their Millennium II card just weeks before XFree86-3.3.1 was finished. While time permitted a quick hack to get XF86_SVGA to work on the Millennium II, it was soon obvious there were some problems left unaddressed. Additionally, the AGP version of the Millennium II became available, which was not detected by the XFree86-3.3.1 server. S.u.S.E. decided to fix the most important problems in Millennium II support and add Millennium II AGP support. This was released as XSuSE_Matrox.

This started a flood of requests for servers for other, recently released hardware, for example, the Riva128 chip from NVidia, a newer version of the Mach64 series from ATI, or the AT3D and AT25 chip sets from Alliance Semiconductor. The XFree86 developers started to work on drivers for these chip sets, but a new release of XFree86 was months away.

Instead of telling people to wait, many developers wished to make their servers available. However, given the size of the XFree86 sources, releasing patches did not seem to be a good way to give the majority of the users access to these drivers. Additionally, this would have created a confusing mess of different versions available, something that XFree86 is trying to avoid. At this point, S.u.S.E. took over the coordination of releasing interim servers, helped to develop many of these drivers with its own employees and made the servers available to the public in the form of binary-only releases.

The XFree86 Project was willing to give permission for these releases under the following conditions:

Since these conditions exactly matched the intentions of S.u.S.E., the creation and distribution of the XSuSE servers began.

What Next

Since then, many people have wondered if S.u.S.E. would begin to develop commercial X servers and become yet another player in that market (like Metro Link and Xi Graphics). This was never the intention behind developing these servers in the first place, and is still not among the options being considered by S.u.S.E. On the contrary, these servers are provided as freeware and can be freely distributed by anyone. S.u.S.E. explicitly encourages other Linux distributions to include these servers on their CDs. S.u.S.E. is supporting these servers regardless of whether the user has purchased S.u.S.E. Linux or another Linux distribution. Feedback from support is collected and provided to the developers. The source for these servers is part of the development source of XFree86.

As long as there is demand for early access to server binaries, S.u.S.E. will continue to make servers available in the XSuSE series. This is the case for XSuSE_Elsa_GLoria right now, and other servers will be added as new drivers are written before the next release of XFree86 is ready.

Additionally, S.u.S.E. is actively working on enhancing many other aspects of XFree86, most notably the configuration of the servers. Due to the size of this undertaking, we are hoping to do this as a joint project with XFree86, S.u.S.E., Red Hat and other companies distributing XFree86.

Dirk Hohndel is Vice President of The XFree86 Project, Inc. He was an employee at S.u.S.E. GmbH in 1997, and still works for S.u.S.E. on a freelance basis. His involvement with Linux started in November 1991, and he has been active in the freeware area ever since. He can be reached via e-mail at hohndel@aib.com.

This article was first printed in the proceedings of Linux Expo 98.