# XFree86

XFree86 ist eine freie quelloffene Realisierung der Grafikschnittstelle X Window System (auch X11 genannt). Sie stellt auf Unix und unixoiden Betriebssystemen (Linux, GNU Hurd, BSD und seinen Ableitungen) grundlegende Grafikfunktionen zur Verfügung. In der modularen Systemarchitektur eines grafischen Betriebssystems ist sie als „Dienstprogramm“ zwischen den gerätespezifischen Treibern und der grafischen Benutzeroberfläche (wie etwa KDE oder Gnome) angesiedelt und stellt dieser alle grundlegenden Grafikfunktionen wie etwa das Zeichnen von Rahmen und Fenstern zur Verfügung, die die Benutzeroberfläche oder die grafischen Anwendungsprogramme benötigen. Bis 2004 war dieser Dienst eine auf fast jedem Linux- oder BSD-System anzutreffende Software.
XFree86 ist nicht auf bestimmte Betriebssysteme beschränkt. Beispielsweise ist es auch Teil von Cygwin, einer Systemumgebung für NT-basierende Windowssysteme (NT bis Windows 10), die eine einfache Portierung von Linuxprogrammen auf Windows ermöglicht. Auch für OS/2 und macOS gibt es Portierungen, obwohl Apple bis 2012 eigene X11-Server zur Verfügung stellte (siehe XQuartz).
XFree86 wird seit 2008 nicht mehr weiter entwickelt. Hauptnachfolger ist der X.Org-Server.

## Architektur

Der XFree86-Server kommuniziert mit dem Kernel (meistens ein Linux-, BSD- oder UNIX-Kernel), um Ein- und Ausgabegeräte anzusteuern, teilweise greift er aber auch selbst auf Tastaturen und Mäuse zu. Eine grundlegende Ausnahme bilden die Grafikkarten. Diese werden von XFree86 direkt unter Umgehung des Kernels angesprochen. Für die weitaus meisten Grafikkarten der letzten 15 Jahre bringt XFree86 eigene Treiber mit. Für viele verbreitete Karten gibt es Treiber des Herstellers. Es ist aber auch möglich, XFree86 im „Linux-Framebuffer“ (einen Grafikbereich im Kernel) arbeiten zu lassen, um einen Gerätetreiber für Linux verwenden zu können.
Auf einem typischen POSIX-System liegen die XFree86-Konfigurationsdateien im Verzeichnis /etc/X11. Die grundlegende Konfiguration erfolgt in der Datei XF86Config oder XF86Config-4, die unter anderem Einstellungen zum verwendeten Monitor, Tastatur, Maus und Grafikkarte enthält. Für weniger erfahrene Benutzer existieren Programme (auch grafische), die die Konfiguration erleichtern. Moderne Distributionen bieten auch eine halbautomatische Erkennung sinnvoller Einstellungen.

## Geschichte und Namensgebung

Das Projekt wurde 1991 von David Wexelblat, Glenn Lai, David Dawes und Jim Tsillas begonnen, die gemeinsam darangingen, Fehler im Quellcode von X11 X386 (geschrieben von Thomas Röll) zu beheben. Diese Version hieß ursprünglich X386 1.2e. Da neuere Versionen von X386 nur noch kommerziell verkauft wurden, entwickelte sich das Projekt fortan selbständig und wurde in XFree86 umbenannt, was ein Wortspiel ist (aus X-three-86 wurde X-free-86).
Mit Stand 1. Oktober 2001 unterstützte XFree86 die X11-Spezifikation R6.5.1 inklusive der GLX- und der X-Rendering-Erweiterungen.

## Abspaltungen von XFree86

Im Jahr 2003 wurde Keith Packard, ein anerkannter X-Window-System-Entwickler, aus dem Kernteam ausgeschlossen. Ihm wurde eine Verschwörung vorgeworfen: Keith Packard habe versucht, das XFree86-Projekt zu spalten. Er arbeite weiter innerhalb des Projekts, versuche aber unter der Hand, andere Entwickler für ein neues, von ihm initiiertes X-Server-Projekt zu gewinnen. Packard bestritt dies; anhand einer E-Mail-Korrespondenz konnte jedoch nachgewiesen werden, dass er tatsächlich mit anderen Entwicklern über eine Spaltung diskutiert hatte. Packard selbst zog es vor, zu den Vorgängen nichts mehr zu sagen. Dies führte zur Schaffung von XWin, einem Forum zur Verbesserung von X und speziell XFree86, das später vollständig in freedesktop.org aufging. Keith Packard begann, basierend auf dem X-Window-System und in Kooperation mit freedesktop.org, ein ganz neues Entwicklungsprojekt mit Namen Xserver. Xserver benutzt Kdrives Treiber-API-Modell. Die Autoren beschreiben das Projekt gerne als die nächste X-Server-Generation, die einer anderen Richtung als XFree86 folgt.
Später stellte aber das XFree86-Kernteam fest, dass nur eine begrenzte Innovationskraft vorherrschte. Unter anderem wurde dies an der Struktur des Projekts festgemacht: Die Mitglieder des Kernteams wurden anhand ihrer Beiträge bewusst ausgewählt und blieben so ein enger, abgeschlossener Kreis. Wegen der kaum fortschreitenden Entwicklung von X beschloss das XFree86-Kernteam daraufhin am 30. Dezember 2003, sich am nächsten Tag selbst aufzulösen.
Nach der Auflösung des Kernteams schlossen sich viele Entwickler mit der alten X.Org Foundation zusammen, um diese in ein Open-Source-Projekt umzuwandeln, das zukünftig eine Implementierung eines freien X-Servers gewährleisten sollte. In Zusammenarbeit mit freedesktop.org stellt das neue Entwicklerteam sein Projekt unter dem Namen X.Org-Server zur Verfügung, der auf einer Weiterentwicklung von XFree86 4.4 RC2 beruht.
Massive Unterstützung bekam das neue Projekt, als sich im Januar 2004 das XFree86-Projekt für eine neue Lizenz entschied, die eine besondere Werbe-Klausel mit sich brachte. Kritiker warfen ein, dass XFree86 damit zu nicht-freier Software werde. In jedem Fall war die Lizenzänderung problematisch. Viele Distributoren stuften diese Lizenz als inkompatibel zur GPL ein und unterstützten fortan die Abspaltung, die auf der XFree86-Version 4.4 RC2 basierte und in der alten Lizenz weiterentwickelt wurde.
Die Abspaltung entwickelt seitdem unter dem Dach der X.Org Foundation ihren eigenen X-Server, den X.Org-Server.
Neben diesem Projekt gab es zeitweise einen experimentellen Zweig des XFree86-Codes mit Namen Xouvert, dessen Entwicklung jedoch eingestellt wurde.
Nachdem der Großteil der Entwickler zu X.Org wechselte, gab es nur noch geringen Fortschritt bei XFree86. Die letzte Version (4.8.0) erschien am 15. Dezember 2008, der letzte Codebeitrag wurde im Februar 2009 eingepflegt. Auf Nachfrage erklärte der letzte aktive Entwickler Marc Aurele La France, dass die Arbeit am Projekt mittlerweile eingestellt wurde.