Druckversion

X Window System - Das Client Server Modell

Das X Protokoll Weiter

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.

X Client Server Architektur

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 Zurück Anfang Weiter

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:

  • Replay ist die Antwort des Servers auf die Anfrage eines Clients (z.B. "Fenster ist sichtbar")
  • Event ist die Benachrichtigung des Clients, z.B. weil ein Benutzer eine Eingabe getätigt hat, oder ein Fenster neu gezeichnet werden muss
  • Error ist die Mitteilung über einen Fehler

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 Zurück Anfang Weiter


Aufbau einer X-Client Anwendung

Abbildung 2: Aufbau einer X-Client Anwendung

XFree86 4 - Die neue Architektur Zurück Anfang


 Korrekturen, Hinweise?
Startseite Nächste Seite Nächstes Kapitel Vorherige Seite Kapitelanfang