X Window System: Unterschied zwischen den Versionen
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
=== Entwicklung | == Beschreibung == | ||
[[Datei:Gnome-2.18.1.png|mini|[[Gnome]] 2.18.1]] | |||
[[Datei:KDE 4.png|mini|[[K Desktop Environment|KDE]] 4.10]] | |||
[[Datei:Xfce461-de.png|mini|[[Xfce]] 4.6.1]] | |||
[[Datei:X client server example.svg|mini|Zusammenwirken von X Server und X Client | |||
* Im oberen Teil der Grafik ist ein Benutzerrechner schematisch dargestellt, auf dem ein X Server die Tastatur, die Maus und den Bildschirm verwaltet | |||
* Der X Server interagiert in dem Beispiel mit drei X Clients: einem lokalen Browser, einem lokalen [[xterm]] (zur Interaktion mit [[Unix-Shell]]) und einem entfernten xterm]] | |||
Das '''X Window System''' (auch '''X Version 11''', '''X11''', '''X''') ist ein [[Netzwerkprotokoll]] und eine Software, die [[Fenstersystem|Fenster]] auf [[Rastergrafik|Bitmap-Displays]] auf den meisten [[Unixoides System|unixoiden Betriebssystemen]] und [[OpenVMS]] ermöglicht | |||
* X11 wurde auf allen gebräuchlichen Betriebssystemen implementiert | |||
Es stellt einen Standardbaukasten und das Protokoll zum Bau einer [[Grafische Benutzeroberfläche|grafischen Benutzeroberfläche]] zur Verfügung | |||
* Dazu gehören Zeichnen und Bewegen von Fenstern auf dem Bildschirm sowie das Behandeln der Benutzereingaben mit Maus und Tastatur | |||
* X schreibt keine spezielle [[Benutzerschnittstelle]] vor, sondern überlässt dies seinen [[Client]]-Programmen | |||
* Deshalb können X-basierte Umgebungen in ihrem Aussehen sehr variieren | |||
* Mithilfe von [[Desktop-Umgebung]]en – die bekanntesten, [[K Desktop Environment|KDE]] und [[Gnome]] sind rechts abgebildet – wird dem entgegengewirkt. [[Endanwender]] kommen auf modernen Unix-Desktops mit den Kernprogrammen des X Window Systems kaum noch in Berührung | |||
Frühere Anzeigeprotokolle konnten nur eingebaute oder direkt angeschlossene Anzeigen verwalten | |||
* In Erweiterung dazu wurde X spezifisch als [[Client-Server-Modell#Client-Server-System|Client-Server-System]] entworfen, was neben der lokalen auch eine [[Netzwerktransparenz|netzwerktransparente]] Verwendung ermöglicht | |||
Die [[X.Org Foundation]] betreut heute das Projekt und hat am 6. Juni 2012 die Version 7.7 der [[Referenzimplementierung]] als freie Software unter der [[MIT-Lizenz]] herausgegeben | |||
* Eine weitere, in den 1990ern und der ersten Hälfte der 2000er Jahre weit verbreitete Implementierung ist [[XFree86]] | |||
* Als Nachfolger soll [[Wayland (Display-Server-Protokoll)|Wayland]] dienen | |||
== Entwicklung == | |||
X wurde 1984 im [[Projekt Athena]] in Zusammenarbeit des [[Massachusetts Institute of Technology|MIT]], [[Digital Equipment Corporation|DEC]] und [[IBM]] entwickelt.<ref name="heiseX30y">{{Internetquelle |autor=Jürgen Seeger |url=https://www.heise.de/newsticker/meldung/Das-X-Window-System-wird-30-2235688.html |titel=Das X Window System wird 30 |titelerg=Am 19. Juni 1984 lief der erste Prototyp des netzweiten, grafischen Fenstersystems X, das bis heute Standard auf Unix- und Linux-Systemen ist |werk=[[Heise online]] |datum=2014-06-20 |abruf=2014-06-20}}</ref> Die erste Version wurde am 19 | X wurde 1984 im [[Projekt Athena]] in Zusammenarbeit des [[Massachusetts Institute of Technology|MIT]], [[Digital Equipment Corporation|DEC]] und [[IBM]] entwickelt.<ref name="heiseX30y">{{Internetquelle |autor=Jürgen Seeger |url=https://www.heise.de/newsticker/meldung/Das-X-Window-System-wird-30-2235688.html |titel=Das X Window System wird 30 |titelerg=Am 19. Juni 1984 lief der erste Prototyp des netzweiten, grafischen Fenstersystems X, das bis heute Standard auf Unix- und Linux-Systemen ist |werk=[[Heise online]] |datum=2014-06-20 |abruf=2014-06-20}}</ref> Die erste Version wurde am 19 | ||
* Juni 1984 vorgestellt und 1986 wurde X 10.4 mit großem Erfolg gegen eine Schutzgebühr an alle Interessierten verteilt, womit X erstmals eine große Verbreitung auf den Unix-Rechnern jener Zeit erreichte | * Juni 1984 vorgestellt und 1986 wurde X 10.4 mit großem Erfolg gegen eine Schutzgebühr an alle Interessierten verteilt, womit X erstmals eine große Verbreitung auf den Unix-Rechnern jener Zeit erreichte | ||
Zeile 16: | Zeile 40: | ||
* Seit etwa 2005 gilt er als der meistverbreitete X-Server und damit die meistverbreitete X-Implementierung | * Seit etwa 2005 gilt er als der meistverbreitete X-Server und damit die meistverbreitete X-Implementierung | ||
== Technik == | |||
[[Datei:Some X windows.svg|mini|Mögliche Fensterverteilung durch einen X11-[[Fenstermanager]]]] | [[Datei:Some X windows.svg|mini|Mögliche Fensterverteilung durch einen X11-[[Fenstermanager]]]] | ||
[[Datei:Xframe (en).png|mini|X11-Fensterelemente, Beispiel mit Fenstermanager [[FVWM|FVWM2]]]] | [[Datei:Xframe (en).png|mini|X11-Fensterelemente, Beispiel mit Fenstermanager [[FVWM|FVWM2]]]] | ||
Zeile 32: | Zeile 56: | ||
* Siehe dazu auch [[Desktop-Umgebung]] | * Siehe dazu auch [[Desktop-Umgebung]] | ||
== Kommunikationsmodell == | |||
X baut auf einem [[Client-Server-Modell]] auf | X baut auf einem [[Client-Server-Modell]] auf | ||
Zeile 42: | Zeile 66: | ||
* Der X-Client benutzt die Dienste des X-Servers, um eine grafische Darstellung zu erreichen und empfängt von ihm die diversen Ereignisse (''events'') wie Tastenanschläge, Mausbewegungen, Klicks usw | * Der X-Client benutzt die Dienste des X-Servers, um eine grafische Darstellung zu erreichen und empfängt von ihm die diversen Ereignisse (''events'') wie Tastenanschläge, Mausbewegungen, Klicks usw | ||
== X-Terminal == | |||
Das in der Großrechner-Welt bekannte, textbasierte [[Terminal (Computer)|Terminal]]-System (dort meistens proprietäre wie [[IBM 5250]] und [[IBM 3270|3270]]; unter [[Digital Equipment Corporation|Digitals]] [[Virtual Memory System|VMS]] die bekannten seriellen Terminals wie z. B. [[VT100]]) erlebte seine grafische Weiterentwicklung zum '''X-Terminal'''; ein Rechner, auf dem nichts anderes als ein X-Server<!--sic--> läuft | Das in der Großrechner-Welt bekannte, textbasierte [[Terminal (Computer)|Terminal]]-System (dort meistens proprietäre wie [[IBM 5250]] und [[IBM 3270|3270]]; unter [[Digital Equipment Corporation|Digitals]] [[Virtual Memory System|VMS]] die bekannten seriellen Terminals wie z. B. [[VT100]]) erlebte seine grafische Weiterentwicklung zum '''X-Terminal'''; ein Rechner, auf dem nichts anderes als ein X-Server<!--sic--> läuft | ||
* Diese X-Terminals werden häufig genutzt, um mit leistungsschwachen Rechnern auf rechenintensive Anwendungen zuzugreifen: Die Anwendung selbst läuft auf einem Server, das X-Terminal übernimmt nur die Anzeige der grafischen Oberfläche | * Diese X-Terminals werden häufig genutzt, um mit leistungsschwachen Rechnern auf rechenintensive Anwendungen zuzugreifen: Die Anwendung selbst läuft auf einem Server, das X-Terminal übernimmt nur die Anzeige der grafischen Oberfläche | ||
Zeile 49: | Zeile 73: | ||
* Mit dieser können die Funktionen von X-Terminals zum Beispiel in Form von [[Thin Client]] preiswert umgesetzt werden | * Mit dieser können die Funktionen von X-Terminals zum Beispiel in Form von [[Thin Client]] preiswert umgesetzt werden | ||
== 3D-Beschleunigung == | |||
Um schnelle 2D- und 3D-[[Hardwarebeschleunigung#Grafikkarten|Beschleunigung]] zu ermöglichen, stellt das X Window System die Schnittstelle [[Direct Rendering Infrastructure]] (DRI) bereit, über die Programme direkt auf die Grafik-Hardware zugreifen können | Um schnelle 2D- und 3D-[[Hardwarebeschleunigung#Grafikkarten|Beschleunigung]] zu ermöglichen, stellt das X Window System die Schnittstelle [[Direct Rendering Infrastructure]] (DRI) bereit, über die Programme direkt auf die Grafik-Hardware zugreifen können | ||
* Das geschieht bei freien Treibern durch die [[OpenGL]]- und [[Vulkan (API)|Vulkan]]-Implementierung [[Mesa 3D]], im Fall von [[Binärblob|proprietären Treibern]] durch jeweils proprietäre Implementierungen davon | * Das geschieht bei freien Treibern durch die [[OpenGL]]- und [[Vulkan (API)|Vulkan]]-Implementierung [[Mesa 3D]], im Fall von [[Binärblob|proprietären Treibern]] durch jeweils proprietäre Implementierungen davon |
Version vom 8. Mai 2025, 12:08 Uhr
X Window System - Beschreibung
Beschreibung
Beschreibung




Das X Window System (auch X Version 11, X11, X) ist ein Netzwerkprotokoll und eine Software, die Fenster auf Bitmap-Displays auf den meisten unixoiden Betriebssystemen und OpenVMS ermöglicht
- X11 wurde auf allen gebräuchlichen Betriebssystemen implementiert
Es stellt einen Standardbaukasten und das Protokoll zum Bau einer grafischen Benutzeroberfläche zur Verfügung
- Dazu gehören Zeichnen und Bewegen von Fenstern auf dem Bildschirm sowie das Behandeln der Benutzereingaben mit Maus und Tastatur
- X schreibt keine spezielle Benutzerschnittstelle vor, sondern überlässt dies seinen Client-Programmen
- Deshalb können X-basierte Umgebungen in ihrem Aussehen sehr variieren
- Mithilfe von Desktop-Umgebungen – die bekanntesten, KDE und Gnome sind rechts abgebildet – wird dem entgegengewirkt. Endanwender kommen auf modernen Unix-Desktops mit den Kernprogrammen des X Window Systems kaum noch in Berührung
Frühere Anzeigeprotokolle konnten nur eingebaute oder direkt angeschlossene Anzeigen verwalten
- In Erweiterung dazu wurde X spezifisch als Client-Server-System entworfen, was neben der lokalen auch eine netzwerktransparente Verwendung ermöglicht
Die X.Org Foundation betreut heute das Projekt und hat am 6. Juni 2012 die Version 7.7 der Referenzimplementierung als freie Software unter der MIT-Lizenz herausgegeben
- Eine weitere, in den 1990ern und der ersten Hälfte der 2000er Jahre weit verbreitete Implementierung ist XFree86
- Als Nachfolger soll Wayland dienen
Entwicklung
X wurde 1984 im Projekt Athena in Zusammenarbeit des MIT, DEC und IBM entwickelt.[1] Die erste Version wurde am 19
- Juni 1984 vorgestellt und 1986 wurde X 10.4 mit großem Erfolg gegen eine Schutzgebühr an alle Interessierten verteilt, womit X erstmals eine große Verbreitung auf den Unix-Rechnern jener Zeit erreichte
- X10 war jedoch inkompatibel zum späteren X11.[2] Im September 1987 schließlich folgte das erste Release von X11
Als 1988 die Popularität immer größer wurde, wurde das nicht-kommerzielle X-Konsortium gegründet, das die weitere Entwicklung übernahm
- Es veröffentlichte verschiedene Versionen, die letzte große war X11R6 1994
- Danach übernahm The Open Group die Entwicklung und Standardisierung
- In der gleichen Zeit erreichte die freie X-Implementierung XFree86 einen immer größeren Bekanntheitsgrad und wurde zum De-facto-Standard der X-Implementierung. 2003 aber gab es projektinterne und lizenzrechtliche Probleme bei XFree86, die im Endeffekt zur Auflösung des Entwicklerteams führten
- Unter dem Dach der daraufhin neu gegründeten X.Org Foundation wurde fortan eine Abspaltung des alten XFree86 weiterentwickelt, die unter dem Namen X.Org-Server größtenteils in dessen Fußstapfen trat
- Seit etwa 2005 gilt er als der meistverbreitete X-Server und damit die meistverbreitete X-Implementierung
Technik


Der X-Server steuert die Ein- und Ausgabegeräte wie unter anderem Zeigegeräte (z. B. Maus), Tastatur, Bildschirm und Grafikkarte
- Dazu kommuniziert er in der Theorie mit dem Betriebssystem-Kernel, in der Praxis wird der Kernel aber auch umgangen
- Das zugrundeliegende Konzept ist eine Erweiterung des Terminal-Konzeptes auf grafische Benutzeroberflächen: Ein Programm verlässt sich für die grafische Eingabe (Maus) und Ausgabe (Fenstertechnik) auf die Dienste eines anderen dafür spezialisierten Programms (X-Server), die Kommunikation läuft immer über das Netzwerk
Die Darstellung bei X ist die eines Rastergrafik-basierten Fenstermanagers, der verschiedene Funktionen bereitstellt
- Dazu gehört das Zeichnen und Bewegen der Fenster, die ereignisorientierte Handhabung eines Zeigegeräts, z. B. einer Maus, die Interprozesskommunikation und teilweise auch die Verwaltungsfunktionen für Druck und Audio-Ausgabe
- X ist also ein Minimalsystem, bei dem zum Zeichnen lediglich Primitive wie Linien, Muster etc. bereitgestellt werden
Das eigentliche Aussehen und Verhalten des Fenstersystems wird deshalb nicht von X bestimmt, sondern von dem Fenstermanager, der wie eine normale Anwendung einfach als Client des X-Servers läuft
- Für das Aussehen der Programme selbst ist er aber nicht verantwortlich, das übernimmt meistens das sog. GUI-Toolkit, welches das Zeichnen und Verwalten der typischen Elemente einer grafischen Oberfläche wie z. B. Menüs und Buttons übernimmt
- Siehe dazu auch Desktop-Umgebung
Kommunikationsmodell
X baut auf einem Client-Server-Modell auf
- Der X-Server läuft auf dem Rechner am Arbeitsplatz und stellt seine (grafischen) Dienste den X-Clients zur Verfügung
- Er enthält den Grafikkartentreiber sowie Treiber für Tastatur, Maus und andere Eingabegeräte (wie z. B. Grafik-Tablets) und kommuniziert mit dem X-Client mittels Interprozesskommunikation
- Der X-Client ist das Anwendungsprogramm, das die grafischen Ein/Ausgabe-Dienste des X-Servers benutzt
- Er kann auf demselben oder auch auf irgendeinem entfernten Rechner laufen (sofern eine Netzwerkverbindung zwischen beiden besteht)
- Der X-Client benutzt die Dienste des X-Servers, um eine grafische Darstellung zu erreichen und empfängt von ihm die diversen Ereignisse (events) wie Tastenanschläge, Mausbewegungen, Klicks usw
X-Terminal
Das in der Großrechner-Welt bekannte, textbasierte Terminal-System (dort meistens proprietäre wie IBM 5250 und 3270; unter Digitals VMS die bekannten seriellen Terminals wie z. B. VT100) erlebte seine grafische Weiterentwicklung zum X-Terminal; ein Rechner, auf dem nichts anderes als ein X-Server läuft
- Diese X-Terminals werden häufig genutzt, um mit leistungsschwachen Rechnern auf rechenintensive Anwendungen zuzugreifen: Die Anwendung selbst läuft auf einem Server, das X-Terminal übernimmt nur die Anzeige der grafischen Oberfläche
Statt spezieller Hardware für X-Terminals hat es sich letztlich durchgesetzt, auf Standard-Hardware von PCs zurückzugreifen
- Mit dieser können die Funktionen von X-Terminals zum Beispiel in Form von Thin Client preiswert umgesetzt werden
3D-Beschleunigung
Um schnelle 2D- und 3D-Beschleunigung zu ermöglichen, stellt das X Window System die Schnittstelle Direct Rendering Infrastructure (DRI) bereit, über die Programme direkt auf die Grafik-Hardware zugreifen können
- Das geschieht bei freien Treibern durch die OpenGL- und Vulkan-Implementierung Mesa 3D, im Fall von proprietären Treibern durch jeweils proprietäre Implementierungen davon
Mit Hilfe von 3D-Erweiterungen wie AIGLX und xgl werden im X.Org-Server darüber hinaus 3D-Effekte auf dem Desktop selbst unterstützt
Installation
Aufruf
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
Wert | Beschreibung |
---|---|
0 | Erfolg |
>0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
Datei | Beschreibung |
---|---|
Anhang
Siehe auch
- X Display Manager
- Cygwin/X (Windows-Implementierung)
- Xming (Windows-Implementierung)
- XQuartz (macOS-Implementierung)
- Quartz Compositor
- Rio (Software)
Dokumentation
- Man-Page
- Info-Pages
Links
Projekt
Weblinks
- Xlib Programming Manual. O’Reilly & Associates
- Vorlage:Wikibooks
- X.Org Foundation
- XFree86 Project, Inc
- Fresco – a windowing system
- Die Woche: Das Ende von X11? c’t
- ↑
- ↑ The X Window System. In: Guidebook, Stand: 25
- Juni 2005 (englisch); ursprünglich in der Byte, Ausgabe 1/89, S. 353–360; abgerufen am 31
- Mai 2013.