X Window System - Das Client Server Modell |
Das X Protokoll |
Das X Protokoll definiert eine Client-Server-Beziehung zwischen der Anwendung und seiner Darstellung. Die Anwendung als Client spezifiziert was dargestellt werden soll. Der Server kümmert sich um das wie der Darstellung.
Diese klare Trennung ermöglicht den Austausch sowohl des Clients als auch des Servers, ohne dass der jeweils andere Teil einer Anpassung bedarf. Außerdem ermöglicht diese Charakteristik, eine grafische Anwendung auf einem entfernten Rechner im Netz zu starten und ihre Ausgaben durch die Dienste des lokalen X-Servers lokal darzustellen.
Des Weiteren unterteilt X den X Server in einen geräteabhängigen und einen geräteunabhängigen Teil. Somit verdeckt X zum einen die hardwarespezifischen Details und zum anderen die Besonderheiten des Betriebssystems.
Abbildung 1: X Client Server Architektur
Die Abbildung veranschaulicht das Zusammenwirken von Clients und Server. Der Server implementiert
Funktionen der Xlib-Bibliothek, auf deren Schnittstelle alle Clients basieren. Unter einem X-Client versteht
man dabei jede grafische Anwendung, die einen X-Server zur Darstellung benötigt. X-Clients sind also
xterm, xclock, xman, ...
Ein einzelnes X-Terminal ist kaum als grafische Benutzeroberfläche zu bezeichnen. Um einen
einheitlichen Desktop zu präsentieren, setzen Toolkits - Windowmanager oder integrierte Umgebungen wie
KDE - auf die Grafikbibliothek auf. Die eigentlichen X-Clients arbeiten nun mit einem Windowmanager
zusammen, der die Anwendungen mit einem einheitlichen Rahmen und identischen Bedienelementen versieht...
Der X Server |
Der X-Server ist das zur Steuerung des Displays zuständige Programm. Ein Display umfasst dabei - analog zum Terminal der Konsole - eine Kombination von Ein- und Ausgabegeräten. Typische Eingabegeräte sind die Tastatur ("keyboard") und die Maus ("pointer"); die Ausgaben erfolgen auf einem oder mehreren Bildschirmen ("screen").
Der X-Server ist auf der lokalen Maschine aktiv und bearbeitet die Anforderungen, die von lokalen oder auch entfernten Clients eintreffen. Das Format der Kommunikation zwischen Clients und Server ist durch das X-Protokoll festgelegt. Netzwerkverbindungen werden über TCP/IP und DECnet unterstützt.
Alle Datenobjekte werden in der X-Window-Terminologie als Resources bezeichnet. Hieruntern zählen die Cursors, die Fonts, die Windows, ... Jede Resource besitzt eine eindeutige Identifikation und mehrere Clients können gleichzeitig auf eine Resource zugreifen. Es ist nun Aufgabe des X-Servers bei einer Benutzereingabe herauszufinden, welches Fenster gerade aktiv war, welcher Client dessen Eigentümer ist und damit, an welchen Client die Eingaben weiter zu leiten sind.
Das X-Protokoll unterscheidet drei Arten von Nachrichten, die der X-Server an einen Client übermitteln kann:
Die Daten der Objekte eines Clients werden soweit möglich auf dem Server gehalten. Der Client bezieht sich nachfolgend auf ein Objekt nur noch über die Resource-ID. Hierin liegt der Grund, warum der Start einer X-Anwendung über eine Netzverbindung zunächst recht langsam vonstatten geht, nachfolgend die Geschwindigkeit aber kaum einen Unterschied zwischen lokalen und entfernten Clients offenbart. Der Datentransfer wird stark reduziert; allerdings sollte ein Server auch über entsprechend viel Speicherkapazität verfügen.
Der X Client |
Abbildung 2: Aufbau einer X-Client Anwendung
XFree86 4 - Die neue Architektur |