Developer(s) | The XFree86 Project, Inc. |
---|---|
Initial release | 1991 |
Stable release | 4.8.0 / December 15, 2008 |
Development status | dormant |
Written in | C |
Operating system | multiple |
Available in | Various |
Type | Windowing system |
License | XFree86 License 1.1 |
Website | www.xfree86.org |
XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and is now available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It is developed by the XFree86 Project, Inc. The lead developer is David Dawes. The current version is 4.8.0, released December 2008.
For most of the 1990s and early 2000s, the project was the source of most innovation in X and was the de facto steward of X development. Until early 2004, it was almost universal on Linux and the BSDs.
In February 2004, with version 4.4.0, The XFree86 Project adopted a license change that the Free Software Foundation considered GPL incompatible. Most Linux distributions found the potential legal issues unacceptable and moved to a fork from before the license change. The first fork was the abortive Xouvert, but X.Org Server soon became dominant. Most XFree86 developers, who were already annoyed at other issues in the project, also moved to X.Org. The last CVS commit was February 2009.[1]
Contents |
XFree86 is used in almost no distributions. The last remaining distribution to use it is NetBSD, which still ships some platforms with 4.5.0 by default[2] (though Xorg can be installed from pkgsrc).
XFree86 consists of client libraries used to write X applications ("clients"), and an X server responsible for the display. Clients and servers communicate via the X protocol, which allows them to run on different computers.
The XFree86 server communicates with the host operating system's kernel to drive input and output devices, with the exception of graphics cards. These are generally managed directly by XFree86, so it includes its own drivers for all graphic cards a user might have. Some cards are supported by vendors themselves via binary-only drivers.
Since version 4.0, XFree86 has supported certain accelerated 3D graphics cards via the GLX and DRI extensions.
Because the server usually needs low level access to graphics hardware, on many configurations it needs to run as the superuser, or a user with UID 0. However, on some systems and configurations it is possible to run the server as a normal user.
It is also possible to use XFree86 in a framebuffer device, which in turn uses a kernel graphics card driver.
On a typical POSIX-system, the directory /etc/X11 includes the configuration files. The basic configuration file is /etc/X11/XF86Config (or XF86Config-4) that includes variables about the screen (monitor), keyboard and graphics card. The program xf86config is often used, although xf86cfg also comes with the XFree86 server and is certainly friendlier. Many Linux distributions used to include a configuration tool that was easier to use (such as Debian's debconf) or autodetected most (if not all) settings (Red Hat Linux and Fedora's Anaconda, SuSE's YaST and Mandrake Linux used to choose this path).
The project began in 1992 when Glenn Lai, David Dawes, Jim Tsillas and David Wexelblat joined forces addressing bugs in the source code of the X386 X server (written by Thomas Roell), as publicly published X11R5. This version was initially called X386 1.2E. As newer versions of the "freeware" X386 were being sold under a proprietary software license by SGCS (of which Roell was a partner), confusion existed between the projects. After discussion, the project was renamed XFree86, after group discussion with the "86" being appended to show the processors it supported.
As Linux grew in popularity, XFree86 rose with it, as the main X project with drivers for PC video cards.
By the late 1990s, official X development was moribund.[3] Most technical advancement was happening in the XFree86 project. In 1999, XFree86 was sponsored onto X.Org (the official industry consortium) by various hardware companies interested in its use with Linux and its status as the most popular version of X.[4]
By 2002, while Linux's popularity, and hence the installed base of X, surged, X.Org was all but inactive; active development was largely carried out by XFree86.[5] However, there was considerable dissent within XFree86.
XFree86 used to have a Core Team which was made up of experienced developers, selected by other Core Team members for their merits. Only the members of this Core Team were allowed to commit to CVS. This was perceived as far too cathedral-like in its development model: developers were unable to get commit rights quickly and vendors ended up maintaining extensive patches.[6][7]
A key event was Keith Packard losing his commit rights. Hours before the feature freeze window for XFree86 4.3.0 started, he committed the XFIXES extension, without prior discussion or without review within the Core Team. The Core Team decided to remove Keith's commit access, but without removing him from the Core Team itself, and the XFIXES extension was backed out 6 weeks later.[8][9]
In March, a major developer claimed that Keith Packard, also a Core Team member, had been trying to fork the XFree86 project by working inside the project while trying to attract core developers to a new X Server project that he was not sharing with the Core Team. Packard denied this had been his aim, but emails release showed otherwise. [10]
A short time later, Keith Packard created xwin.org, which mainly served as a meeting point for cultivating the XFree86 fork.[11]. By the end of the year, because of the facetiousness of the Packard Fork, the XFree86 Core Team voted to disband itself so that member could work on their own versions of X without having to work within the Core or XFree86 umbrella.
Versions of XFree86 up to and including some release candidates for 4.4.0 were under the MIT License, a permissive, non-copyleft free software license. XFree86 4.4 was released in February 2004 with a change to the license: the addition of a credit clause,[12] similar to that in the original BSD license,[13] but broader in scope.
Shortly after he was expelled from the XFree86 Core Team, Keith Packard started setting up xwin.org.[14] While this was claimed to be the fork of XFree86,[15] Keith Packard later refined this to "a forum for community participation in X".[16] Xwin saw a lot of activity in the first two months after the announcements, but most of the activity was happening behind the scenes, and Keith moved his own development to freedesktop.org.[17]
Xouvert was later also hailed as the first XFree86 fork in August 2003.[18] Even though releases were announced for October 2003 and April 2004,[19] no releases were made. The last status change was made in March 2004 and it was communicated that there were delays in setting up a revision control system.[20]
The X.Org Server became the official reference implementation of X11. The first version, X11R6.7.0, was forked from XFree86 version 4.4 RC2 to avoid the XFree86 license changes, with X11R6.6 changes merged in. Version X11R6.8 added many new extensions, drivers and fixes. It is hosted by and works closely with corporate-sponsored freedesktop.org.
Most of the open-source Unix-like operating systems have adopted the X.Org Server in place of XFree86, and most of the XFree86 developers because of their employment have moved to corporate sponsored X.Org.
Version | Release date | Most important changes |
---|---|---|
X386 1.1 | February 11, 1991 | First version by Thomas Roell, based on X11R4. |
X386 1.2 | August 29, 1991 | Included with X11R5. |
X386 1.2e 0.0 | May 7, 1992 | First pre-XFree86 code by eventual team members. |
XFree86 1.0m | September 2, 1992 | First version named "XFree86". |
XFree86 2.0 | October 1993 | |
XFree86 2.1 | March 11, 1994 | |
XFree86 2.1.1 | May 4, 1994 | Last version based on X11R5. |
XFree86 3.0 | August 26, 1994 | Release for X11R6. |
XFree86 3.1 | September 29, 1994 | |
XFree86 3.2 | October 26, 1996 | |
XFree86 3.2.1 | 1996 | |
XFree86 3.3 | May 30, 1997 | XFree86 Acceleration Architecture (XAA) |
XFree86 3.3.1 | August 8, 1997 | |
XFree86 3.3.2 | May 24, 1998 | |
XFree86 3.3.3 | December 30, 1998 | |
XFree86 3.3.3.1 | December 30, 1998 | |
XFree86 3.3.4 | June 21, 1999 | |
XFree86 3.3.5 | August 17, 1999 | |
XFree86 3.3.6 | December 31, 1999 | Last 3.x version. |
XFree86 4.0 | March 8, 2000 | Complete new architecture. X11R6.4 included. |
XFree86 4.0.1 | June 30, 2000 | XRender |
XFree86 4.0.2 | December 18, 2000 | |
XFree86 4.0.3 | March 16, 2001 | |
XFree86 4.0.4 | 2001 | |
XFree86 4.1.0 | June 2, 2001 | |
XFree86 4.2.0 | January 18, 2002 | |
XFree86 4.2.1 | September 3, 2002 | |
XFree86 4.3.0 | February 26, 2003 | |
XFree86 4.4 RC2 | ? | Forked to X.Org Server |
XFree86 4.4.0 | February 29, 2004 | First version under XFree86 License 1.1. |
XFree86 4.5.0 | March 16, 2005 | |
XFree86 4.6.0 | May 10, 2006 | |
XFree86 4.7.0 | August 12, 2007 | |
XFree86 4.8.0 | December 15, 2008 |
|