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.

X.Org-Server

Basisdaten

Entwickler X.Org Foundation
Erscheinungsjahr 6. April 2004
Aktuelle Version 21.1.14[1]
(29. Oktober 2024)
Betriebssystem plattformübergreifend (unixoid)
Unix/BSD inkl. macOS
Linux
Cygwin (Windows)
Programmier­sprache C[2]
Kategorie Display-Server
Lizenz verschiedene freie Lizenzen
deutschsprachig nein
www.x.org

Die X.Org Foundation verwaltet die Standards rund um die Referenzimplementierung dieses X-Window-Systems.

Geschichte

Bearbeiten

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

Bearbeiten

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.[3] 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.[4]

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.[5]

Seit 2008 ist eine Verringerung der Entwicklungsgeschwindigkeit zu beobachten.[6]

2015 wurde der X.Org-Server 1.18 und 2016 der Server 1.19 veröffentlicht.[7]

Server-Architektur

Bearbeiten
 
X.Org-Server ist ein Display-Server, der über das X11-Protokoll mit seinen Clients kommuniziert. Ein Fenstermanager wird zusätzlich benötigt.

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[8][9] – diese ist auch nicht mehr notwendig, da der X-Server von X.org auf moderner Hardware eine automatische Erkennung bietet.[10] 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.

Siehe auch

Bearbeiten
  • Andere Projekte der X.Org Foundation, zum Beispiel Xinerama
  • AIGLX – eine Erweiterung des X.Org-Servers für hardwarebeschleunigte graphische Desktop-Effekte, ab Version 7.1 Teil des X.Org-Servers
  • Xgl – eine weitere Erweiterung für hardwarebeschleunigte graphische Desktop-Effekte
  • Xegl – völlig neuer, vollständig in OpenGL implementierter X-Server mit modernem Treiberkonzept
  • XCB – Bibliothek zur Ablösung von Xlib
  • Wayland (Display-Server-Protokoll)
Bearbeiten
Commons: X.Org-Server – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

Bearbeiten
  1. Olivier Fourdan: [ANNOUNCE] xorg-server 21.1.14. 29. Oktober 2024 (abgerufen am 29. Oktober 2024).
  2. The x Open Source Project on Open Hub: Languages Page. (abgerufen am 14. Juli 2018).
  3. Module Versions. freedesktop.org (englisch); abgerufen am 31. Mai 2007.
  4. Adam Jackson: Xorg releases and future planning. X developer conference 2007 (englisch); wiki.x.org
  5. Liste der Neuerungen in Version 7.3. x.org, 6. September 2007.
  6. X.Org Server Development Continues Trending Lower. Phoronix, 16. Juli 2016
  7. X.Org Server 1.19 Officially Released With A Year's Worth Of Improvements. Phoronix, 15. November 2016.
  8. Warren Block: Chapter 5. The X Window System. 5.4. Xorg Configuration. In: FreeBSD Handbook. The FreeBSD Documentation Project, abgerufen am 19. August 2018 (englisch).Do not create manual configuration files unless required. Unnecessary manual configuration can prevent proper operation.
  9. xorg.conf. (Wiki) In: Gentoo.org Wiki. Gentoo Foundation, Inc., abgerufen am 19. August 2018 (englisch).Manually creating xorg.conf should be seen as a last resort option. It is typically desirable to run the X server without any special configuration.
  10. Xorg.1.html. Manpage. In: X.org X11R7.0. The X.Org Foundation, 21. Dezember 2005, abgerufen am 19. August 2018 (englisch).Starting with version 4.4, Xorg has a mechanism for automatically generating a built-in configuration at run-time when no xorg.conf file is present.