XFree86

Last updated
XFree86
Developer(s) The XFree86 Project, Inc.
Initial release1991;33 years ago (1991) (as X386)
Final release
4.8.0 / December 15, 2008;15 years ago (2008-12-15)
Repository
  • [cvs://anoncvs@anoncvs.xfree86.org:/cvs cvs://anoncvs@anoncvs.xfree86.org:/cvs] OOjs UI icon edit-ltr-progressive.svg
Written in C
Operating system Cross-platform
Available inVarious
Type Display server
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 was available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It was developed by the XFree86 Project, Inc. The lead developer was David Dawes. The last released version was 4.8.0, released December 2008. The last XFree86 CVS commit was made on May 18, 2009; [1] the project was confirmed dormant in December 2011. [2]

Contents

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 began distributing new code with a copyright license that the Free Software Foundation considered GPL incompatible. Most open source operating systems using XFree86 found this unacceptable and moved to a fork from before the license change. [3] The first fork was the abortive Xouvert, but X.Org Server soon became dominant. Most XFree86 developers also moved to X.Org.

Usage

While XFree86 was widely used by most Unix-like computer operating systems before its license change with version 4.4.0, it has since then been superseded by X.org and is used rarely nowadays. [4] The last remaining operating system distribution to use it was NetBSD, [4] which shipped some platforms with 4.5.0 by default until removing it as obsolete in 2015. [5] [6] NetBSD § 5.0 and later releases use X.org by default on various ports (including i386 and amd64), and X.org is available through NetBSD pkgsrc for architectures for which XFree86 remains the default because of better support. [7]

As of 19 April 2019, the netbsd-7 branch and NetBSD § 7.2 release were the last to potentially contain XFree86, [5] and XFree86 was completely removed before netbsd-8 branch and NetBSD § 8.0 release in 2018. [8] [5] [6]

Architecture

XFree86 is a display server. Schema of the layers of the graphical user interface.svg
XFree86 is a display server.

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. Version 4.0 also moved to a new driver model, from one X server binary per driver to a unique X server capable of loading several drivers at a time.

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 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 (such as Red Hat Linux and Fedora's Anaconda , SuSE's YaST and Mandrake Linux).

History

Early history and naming

The project began in 1992 when David Wexelblat, Glenn Lai, David Dawes and Jim Tsillas joined forces addressing bugs in the source code of the X386 X display server (written by Thomas Roell), as contributed to X11R5. This version was initially called X386 1.2E. As newer versions of the (originally 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, as a pun (compare X-three-eighty-six to X-free-eighty-six). Roell has continued to sell proprietary X servers, most recently under the name Accelerated-X .

Rise with Linux

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. [9] 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. [10]

2002: Growing dissent within the project

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. [11] 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. [12] [13]

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 (which he developed himself), 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 six weeks later. [14] [15]

2003: The fork and the disbanding of the Core Team

In March 2003, the Core Team claimed that Packard 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 of his own making. Packard denied this had been his aim, but some emails were provided as evidence otherwise. [16] Keith Packard was subsequently expelled from the Core Team. [17] [18] [19]

A short time later, Packard created xwin.org, which mainly served as a meeting point for cultivating the XFree86 fork. [20] The rest of the year, many of the developers that were still active at XFree86 went over to the project that was being set up at the freedesktop.org and X.org domains. [21]

By the end of the year, due to dwindling active membership and limited remaining development capacity, the XFree86 Core Team voted to disband itself. [22]

2004: Licensing controversy

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. In February 2004, XFree86 4.4 was released with a change to the XFree86 license, by adding a credit clause, [23] similar to that in the original BSD license, [24] but broader in scope. The newer terms are referred to as the XFree86 License 1.1. Many projects relying on XFree86 found the new license unacceptable, [25] and the Free Software Foundation considers it incompatible with the version 2 of the GNU General Public License, though compatible with version 3. [26] The XFree86 Project states that the license is "as GPL compatible as any and all previous versions were", but does not mention which version or versions of the GPL this is valid for. [27]

Some projects made releases (notably OpenBSD 3.5 and 3.6, and Debian 3.1 "Sarge") based on XFree86 version 4.4 RC2, the last version under the old license. Most operating systems incorporating XFree86 (including later versions of OpenBSD and Debian) migrated to the X.Org Server. [3]

The last code commit was in 2009; the project was confirmed dormant in 2011 [2] and the website was last updated in 2014, commemorating the then-22nd anniversary.

Forks of XFree86

Xwin

Shortly after he was expelled from the XFree86 Core Team, Keith Packard started setting up xwin.org. [28] While this was claimed to be the fork of XFree86, [29] Keith Packard later refined this to "a forum for community participation in X". [30] 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. [31]

Xouvert

Xouvert was later also hailed as the first XFree86 fork in August 2003. [32] Even though releases were announced for October 2003 and April 2004, [33] 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. [34]

X.Org

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 have moved to X.Org.

Release history

VersionRelease dateMost important changes
Old version, no longer maintained: X386 1.1February 11, 1991First X386 version by Thomas Roell, based on X11R4.
Old version, no longer maintained: X386 1.2August 29, 1991Included with X11R5.
Old version, no longer maintained: X386 1.2E 0.0May 7, 1992First pre-XFree86 code by eventual team members.
Old version, no longer maintained: X386 1.2E 1.0July 18, 1992
Old version, no longer maintained: X386 1.2E 1.0.1July 23, 1992
Old version, no longer maintained: X386 1.2E 1.0.2August 8, 1992
Old version, no longer maintained: XFree86 1.0mSeptember 2, 1992First version named "XFree86".
Old version, no longer maintained: XFree86 1.1October 1, 1992
Old version, no longer maintained: XFree86 1.2February 8, 1993
Old version, no longer maintained: XFree86 1.3June 5, 1993
Old version, no longer maintained: XFree86 2.0October 24, 1993
Old version, no longer maintained: XFree86 2.1March 11, 1994
Old version, no longer maintained: XFree86 2.1.1May 4, 1994Last version based on X11R5.
Old version, no longer maintained: XFree86 3.0August 26, 1994Release for X11R6.
Old version, no longer maintained: XFree86 3.1September 29, 1994
Old version, no longer maintained: XFree86 3.1.2August 1995
Old version, no longer maintained: XFree86 3.2October 26, 1996
Old version, no longer maintained: XFree86 3.2.1December 1996
Old version, no longer maintained: XFree86 3.3May 30, 1997 XFree86 Acceleration Architecture (XAA)
Old version, no longer maintained: XFree86 3.3.1August 8, 1997
Old version, no longer maintained: XFree86 3.3.2May 24, 1998
Old version, no longer maintained: XFree86 3.3.3December 30, 1998
Old version, no longer maintained: XFree86 3.3.3.1December 31, 1998
Old version, no longer maintained: XFree86 3.3.4June 21, 1999
Old version, no longer maintained: XFree86 3.3.5August 17, 1999
Old version, no longer maintained: XFree86 3.3.6December 31, 1999Last 3.x version.
Old version, no longer maintained: XFree86 4.0March 7, 2000 [35] Complete new architecture. [36] X11R6.4 included.
Old version, no longer maintained: XFree86 4.0.1June 30, 2000 XRender
Old version, no longer maintained: XFree86 4.0.2December 18, 2000
Old version, no longer maintained: XFree86 4.0.3March 16, 2001
Old version, no longer maintained: XFree86 4.0.4April 2001
Old version, no longer maintained: XFree86 4.1.0June 2, 2001
Old version, no longer maintained: XFree86 4.2.0January 18, 2002
Old version, no longer maintained: XFree86 4.2.1September 3, 2002
Old version, no longer maintained: XFree86 4.3.0February 26, 2003
Old version, no longer maintained: XFree86 4.4 RC2December 19, 2003 [37] Forked to X.Org Server
Old version, no longer maintained: XFree86 4.4.0February 29, 2004First version under XFree86 License 1.1.
Old version, no longer maintained: XFree86 4.5.0March 16, 2005
Old version, no longer maintained: XFree86 4.6.0March 10, 2006
Old version, no longer maintained: XFree86 4.7.0August 12, 2007
Current stable version:XFree86 4.8.0December 15, 2008
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

See also

Related Research Articles

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

Darwin is the core Unix-like operating system of macOS, iOS, watchOS, tvOS, iPadOS, audioOS, visionOS, and bridgeOS. It previously existed as an independent open-source operating system, first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, FreeBSD, other BSD operating systems, Mach, and other free software projects' code, as well as code developed by Apple.

<span class="mw-page-title-main">XQuartz</span> Version of the X.Org X server for macOS

XQuartz is an open-source version of the X.Org X server, a display server for the X Window System that runs on macOS. It formally replaced Apple's internal X11 app. The name "XQuartz" derives from Quartz, part of the macOS Core Graphics framework, to which XQuartz connects these applications. XQuartz allows cross-platform applications using X11 for the GUI to run on macOS, many of which are not specifically designed for macOS. This includes numerous scientific and academic software projects.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

David Dawes, is one of the founders of the XFree86 project. He was one of four people who started it in 1992, and became the project president in 1994.

Cygwin/X is an implementation of the X Window System that runs under Microsoft Windows. It is part of the Cygwin project, and is installed using Cygwin's standard setup system. Cygwin/X is free software, licensed under the X11 License.

X.Org Server is the free and open-source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation.

GLX is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. It enables programs wishing to use OpenGL to do so within a window provided by the X Window System. GLX distinguishes two "states": indirect state and direct state.

Keith Packard is a software developer, best known for his work on the X Window System.

<span class="mw-page-title-main">Direct Rendering Infrastructure</span> Framework

The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use of DRI is to provide hardware acceleration for the Mesa implementation of OpenGL. DRI has also been adapted to provide OpenGL acceleration on a framebuffer console without a display server running.

<span class="mw-page-title-main">Xgl</span> Display server implementation

Xgl is an obsolete display server implementation supporting the X Window System protocol designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL. It supports hardware acceleration of all X, OpenGL and XVideo applications and graphical effects by a compositing window manager such as Compiz or Beryl. The project was started by David Reveman of Novell and first released on January 2, 2006. It was removed from the X.org server in favor of AIGLX on June 12, 2008.

In computing, XFixes is an X Window System extension which makes useful additions to the X11 protocol. It was started in 2003 by Keith Packard. It first appeared in the KDrive X server and later in X.Org Server version 6.8.0.

<span class="mw-page-title-main">XCB</span> X protocol C language binding library

XCB is a library implementing the client-side of the X11 display server protocol. XCB is written in the C programming language and distributed under the MIT License. The project was started in 2001 by Bart Massey and aims to replace Xlib.

<span class="mw-page-title-main">FreeBSD</span> Free and open-source Unix-like operating system

FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version of FreeBSD was released in 1993 developed from 386BSD and the current version runs on IA-32, x86-64, ARM, PowerPC and RISC-V processors. The project is supported and promoted by the FreeBSD Foundation.

Xenocara is the OpenBSD build infrastructure for the project's customised X.Org Server that utilises a dedicated _x11 user by default to drop privileges and perform privilege separation in accordance to OpenBSD's "least privilege" policy.

<span class="mw-page-title-main">OpenBSD</span> Operating system

OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. The OpenBSD project emphasizes portability, standardization, correctness, proactive security, and integrated cryptography.

<span class="mw-page-title-main">Wayland (protocol)</span> Display system intended to replace X11

Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.

<span class="mw-page-title-main">NetBSD</span> Free and open-source Unix-like operating system

NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.

References

  1. cvs-commit Archived 2013-10-29 at the Wayback Machine . Mail-archive.com. Retrieved on 2013-09-07.
  2. 1 2 Marc Aurele La France: Is there ever going to be a new version of xfree86 XFree86-Forum, December 3rd. 2011
  3. 1 2 Wheeler, David A. (2007-07-06). "The Cautionary Tale of XFree86". Archived from the original on 2004-09-01. Retrieved 2007-07-12.
  4. 1 2 Constantine A. Murenin (May 2008). "Conference Reports, BSDCan: The BSD Conference, X.Org" (PDF). ;login: . 33 (4). USENIX (published August 2008): 114. ISSN   1044-6397.
  5. 1 2 3 "xsrc/xfree/xc/". NetBSD. 2015-07-23. Retrieved 2019-04-18.
  6. 1 2 matthew green (2015-07-23). "CVS commit: xsrc/xfree/xc". source-changes (Mailing list). NetBSD. remove obsolete XFree86 sources.
  7. "Announcing NetBSD 5.0".
  8. "Announcing NetBSD 8.0 (July 17, 2018)". NetBSD. XFree86 has been removed, as all architectures have switched to XOrg.
  9. Mitchell, Robert L. (4 Feb 2002). "Q&A: The X Factor". Computerworld. Archived from the original on 12 Jun 2024. Retrieved 12 Jun 2024.
  10. XFree86 joins X.Org as Honorary Member, Posted by CmdrTaco on Dec 01, 1999, Slashdot
  11. (forum) Another teleconference partial edited transcript Archived February 12, 2005, at the Wayback Machine , By Mike A. Harris, 13 Apr 2003
  12. (forum) Keith Packard issue Archived February 12, 2005, at the Wayback Machine By Ralf Nolden, 20 Mar 2003
  13. Advogato: Blog for mharris
  14. (forum) Suggestion for XFree86 Archived April 23, 2010, at the Wayback Machine , By David Dawes, 20 Mar 2003
  15. CVS commit: Finish removing XFIXES Archived June 15, 2011, at the Wayback Machine , By David Dawes, 12 Jan 2003
  16. (forum) Some perspective from the cheap seats ... Archived February 28, 2004, at the Wayback Machine , By David Wexelblat, March 20, 2003
  17. (forum) Invitation for public discussion about the future of X Archived February 12, 2005, at the Wayback Machine , By XFree86 BOD, 20 Mar 2003
  18. (forum) A Call For Open Governance Of X Development Archived February 12, 2005, at the Wayback Machine , By Keith Packard, 21 Mar 2003
  19. (forum) Notes from a teleconference held 2003-3-27 Archived February 12, 2005, at the Wayback Machine , By Keith Packard, 03 Apr 2003
  20. (Archived) XWin front page, By Keith Packard and others, 11 Apr 2003
  21. (Archived) X.org software page at xwin.org, by Kaleb Keithley, 18 Nov 2003
  22. (devel) Core Team disbands, By David Dawes, 30 Dec 2003
  23. "XFree86 Licenses". XFree86 Project, Inc. 2005-01-01. Retrieved 2008-05-02.
  24. Dawes, David (2004-01-29). "Announcement: Modification to the base XFree86 license". XFree86 Project. Archived from the original on 2007-09-30. Retrieved 2007-07-12.
  25. "XFree86 4.4: List of Rejecting Distributors Grows". Slashdot. 2004-02-18. Retrieved 2007-07-12.
  26. "Various Licenses and Comments about Them". Free Software Foundation . Retrieved 2013-03-12.
  27. "XFree86 Licenses". XFree86 Project. 2005-01-01. Retrieved 2007-07-12.
  28. (Archived) XWin front page, By Keith Packard and others, 11 Apr 2003
  29. Keith Packard's Xfree86 Fork Officially Started, Slashdot, 11 Apr 2003
  30. xwin.org goals by Keith Packard, 12 Apr 2003. "Xwin.org - xwin.org goals". Archived from the original on December 6, 2003. Retrieved September 13, 2012.{{cite web}}: CS1 maint: unfit URL (link)
  31. Screenshots from freedesktop.org's New X Server Osnews, 11 Nov 2003
  32. XFree86 Fork Gets a Name, Website by Piethein Strengholt, 17 Aug 2003
  33. The Xouvert Project by Jonathan Corbet, 20 Aug 2003
  34. (archived) Xouvert front page, Mar 28, 2004.
  35. "Release Notes for XFree86[tm] 4.0". XFree86 Project. 7 March 2000. Retrieved 16 September 2018.
  36. "Release Notes for XFree86[tm] 4.0 - Introduction". XFree86 Project. 7 March 2000. Retrieved 16 September 2018.
  37. XFree86 4.4.0 RC2 (fwd). Spinics.net (2003-12-19). Retrieved on 2013-09-07.
Notes