X11 - Einleitung
Grundlagen

X11 - Implementierungen

X11-Technologie in Grundzügen


X11 baut von vorneherein auf einem Client-Server-Konzept auf. Graphische X-Applikationen, die in diesem Konzept die Rolle des "X-Clients", kommunizieren für die Darstellung von Fenstern, Schriften, graphischen Elemente sowie die alle Benutzer-Eingaben mit dem X-Server.

X - Client - Server

Im Wesentlichen erledigt diese Kommunikation die Funktionsbibliothek Xlib - eines der Kernstücke jeder X11-Distribution. Der X-Server "bedient" die X-Clients mit seinen graphischen Darstellungsfähigkeiten und liefert sämtliche Benutzereingaben über Tastatur, Maus und andere Geräte. Eine herausragende Eigenschaft des X-Window-Systems ist, dass X-Client und X-Server sowohl auf dem gleichen Rechner als auch - über das Netzwerk kommunizierend - auf unterschiedlichen Maschinen laufen können.

X-Protokoll

Die Kommunikation zwischen X-Client und X-Server ist durch das X-Protokoll geregelt. Dieses Protokoll umfasst:

Requests:
Aufforderungen des X-Clients and den X-Server: Erzeugen und Anzeigen von Fenstern und Fensterkomponenten, Zeichnen graphischer Elemente, Platzierung von Text in bestimmten Schriften usw. Diese Requests sind möglichst einfach gehalten und beinhalten meist "atomare" Zeichenaktionen, wie Punkt, Linie, Rechteck etc.
Replies:
Antworten des X-Servers auf Requests eines X-Clients. Zur Verbesserung der Performance sind nicht auf alle Requests auch Replies notwendig.
Events:
Events sind Tastatureingaben, Mausaktionen u.ä., die der X-Server dem X-Client mitteilt. Um den Netzwerkverkehr zu minimieren, werden schon seitens des X-Servers mit Event-Masken nur die "Ereignisse" herausgefiltert, die für den X-Client relevant sind.
Errors:
Schließlich gibt es verschiedene Fehlermeldungen, die der X-Server - ähnlich wie Events - bei Bedarf an den X-Client sendet.
Wie schon erwähnt, ermöglicht diese konsequente Client-Server-Architektur sowie das klar kodifizierte und frei zugängliche X-Protokoll X-Clients und X-Server verteilt im Netzwerk zu betreiben. Dabei baut der X-Client eine oder mehrer TCP-Verbindungen zum X-Server auf. Der Identifikation eines X-Servers dient die

Display-ID:
Diese setzt sich aus dem Namen oder der IP-Adresse der Maschine, wo der X-Server läuft, und der Display-Nr. des X-Servers zusammen. Normalerweise ist diese  Nr. 0. Darüber hinaus kann ein X-Display mehrere Bildschirme verwalten, die ebenfalls über Screen-Nr. (0,1,2,3) einzeln angesteuert werden können. Die Syntax der Display-ID lautet:

ip-adresse:disp-nr.screen-nr  z.B.  192.168.1.1:0.0

Jedem Display entspricht eine eigene X-Server-Instanz, die über einen eigenen TCP-Port angesprochen wird. Dabei gilt folgende Zuordnung:

Diplay-Nr. 0 <-> TCP-Port 6000
Diplay-Nr. 1 <-> TCP-Port 6001
Diplay-Nr. 2 <-> TCP-Port 6002
u.s.w.
In der Regel entnehmen X-Clients die Display-ID der Umgebungsvariable DISPLAY oder sie wird Ihnen über einen Kommandozeilen-Parameter übergeben, z.B.
xterm -display 192.168.1.1:0.0
Befinden sich X-Server und X-Client auf demselben Host, so kann die IP-Adresse komplett wegfallen. Die Verbindung läuft dann über lokale UNIX-Sockets. Konkret sieht das dann folgendermaßen aus:
xterm -display :0.0   für das erste lokale Display
xterm -display :1.0
usw.

X11 - Einleitung
     ©2005, 2007 Andreas Gottwald
X11-Implementierungen