# X.Org-Server

Der X.Org-Server ist der Display-Server des X-Window-Systems (kurz X11) der X.Org Foundation. Diese hat die Weiterentwicklung nach der Abspaltung von XFree86 übernommen und erstellt seither die offizielle X11-Referenzimplementierung. Gleich nach der Abspaltung wurde der Aufbau in eine modulare Form überführt, die Bestandteile von X.Org-X11 sind daher in einzelne, mehr oder weniger unabhängige Einzelteile zerlegt, wovon der X.Org-Server der Hauptbestandteil ist. Der Display-Server hängt jedoch von weiteren Modulen, wie Eingabegerätetreiber und Grafiktreiber, ab. X.Org-X11 wird in seiner Gesamtheit als freie Software inklusive Quelltext (Open Source) veröffentlicht.
Die X.Org Foundation verwaltet die Standards rund um die Referenzimplementierung dieses X-Window-Systems.

## Geschichte

Nachdem um 2003 innerhalb des XFree86-Projekts Streitigkeiten wegen einer neuen Lizenz für das anstehende Release der Version XFree86-4.4 ausgebrochen waren, verließen viele Entwickler das Projekt, um den Server auf Basis der alten Lizenz weiterzuentwickeln. Da die neue Lizenz von vielen Linux-Distributionen ebenfalls als GPL-inkompatibel abgelehnt wurde, bildeten die Entwickler zusammen mit Mitarbeitern verschiedener Distributionen und der alten X.Org-Organisation die neue X.Org-Stiftung, um in diesem Rahmen den X-Server und auch die X-Standards weiterzuentwickeln und zu verwalten. Dabei wurde die Arbeit eng mit der des freedesktop.org-Projektes verknüpft.

## Versionen

Als Basis für X.Org diente das Pre-Release (XFree86-4.4RC2) von XFree86, welches als letztes Release vollständig auf der alten Lizenz basierte. Auf dieser Basis veröffentlichte X.Org am 7. April 2004 eine Version mit dem ersten eigenen Server unter der Bezeichnung X11R6.7.0. Dieser enthielt weniger neue Eigenentwicklungen als vielmehr letzte Patches, da es sich bereits um einen Release Candidate handelte. Die zweite Version X11R6.8.0 wurde am 8. September 2004 veröffentlicht und enthielt deutlich mehr Neuerungen. So ermöglicht es die neu hinzugekommene Damage-Funktion, dass X-Clients erkennen können, welche Teile von Fenstern verändert wurden. Somit zeichnen die Clients nur veränderte Teile neu, was vor allen Dingen für die Netzwerkübertragung von grafischen Ausgaben wichtig ist. Ebenso wurden Composite Extensions experimentell implementiert, welche echte Transparenz und Schatteneffekte der Fenster ermöglichen.
Die Versionen 6.9 und 7.0 sind vom Funktionsumfang her identisch, der Aufbau ist aber bei der 7er Reihe modular. Ziel dieser Modularisierung ist ein leichter zu wartender und zu ändernder Code. Seit der Veröffentlichung von Version 7.1 wird die 6er Reihe nicht mehr weiterentwickelt, sondern lediglich mit Sicherheitsaktualisierungen gepflegt.
Mit der Einführung der Modularisierung bekamen viele Komponenten auch eigene Versionsnummern. Dies soll es ermöglichen, bestimmte Module wie z. B. den Server-Kernel selbst unabhängig von dem Gesamtpaket (das als katamari bezeichnet wird) in stabilen Versionen zu veröffentlichen.
Die Version 7.3 ermöglichte erstmals Hotplugging von Ausgabegeräten, was vor allem bei Notebooks erhebliche Verbesserungen (etwa bei Präsentationen) mit sich bringt.
Seit 2008 ist eine Verringerung der Entwicklungsgeschwindigkeit zu beobachten.
2015 wurde der X.Org-Server 1.18 und 2016 der Server 1.19 veröffentlicht.

## Server-Architektur

Als Display-Server ist der X.Org-Server diejenige zentrale Komponente des Fenstersystems, welche sowohl die Interaktion zwischen Hardware (Bildschirm, Maus und Tastatur) und Software als auch die Interprozesskommunikation innerhalb des Fenstersystems übernimmt.
Der X.Org-Server kommuniziert wie die meisten X Window Systeme mit dem Betriebssystem-Kernel (meistens ein Linux-, BSD- oder ein anderer Unix-Kernel), um Ein- und Ausgabegeräte anzusteuern. Eine Ausnahme bilden die Grafikkarten, die von X.Org direkt unter Umgehung des Kernels angesprochen werden (siehe auch Direct Rendering Infrastructure). In der Praxis greift X.Org häufig auch direkt auf Tastaturen und Mäuse zu, ohne ausreichend Rücksicht auf die Arbeit des Kernel mit den entsprechenden Geräten zu nehmen.
Für die weitaus meisten Grafikkarten der letzten 15 Jahre bringt X.Org eigene Treiber mit. Für einige Karten (am bekanntesten sind die von Nvidia und AMD) gibt es zusätzlich Binärtreiber der Hersteller, welche die X.Org-Treiber ersetzen. Diese proprietären Treiber bringen meist eine verbesserte 3D-Unterstützung mit sich, sind aber keine freie Software. Es ist auch möglich, X.Org auf einem Framebuffer-Gerät arbeiten zu lassen, wozu dann ein Grafikkarten-Treiber des Kernels benutzt wird.
Auf einem typischen POSIX-System liegen die X.Org-Konfigurationsdateien im Verzeichnis /etc/X11. Auf modernen Distributionen wird von einer manuellen Konfiguration abgeraten – diese ist auch nicht mehr notwendig, da der X-Server von X.org auf moderner Hardware eine automatische Erkennung bietet. Will oder muss dennoch eine manuelle Konfiguration vorgenommen werden, sowie auf älteren Systemen, so erfolgt diese über die Datei xorg.conf, die u. a. Einstellungen zum verwendeten Monitor, der Tastatur, der Maus und der Grafikkarte enthalten kann. Für den weniger erfahrenen Benutzer existieren eine Reihe von (auch grafischen) Frontends, um die manuelle Konfiguration des X-Servers zu erleichtern. Frühere Distributionen boten zudem eine halbautomatische Erkennung der richtigen Einstellungen. Proprietäre Treiber, z.  B. von Nvidia oder AMD (früher ATI), bringen meist eigene graphische Einrichtungsassistenten (Frontends) mit, die den spezifischen Treiber entsprechend konfigurieren können.