Funktionsweise des X-Servers

Wie funktioniert eigentlich so ein X-Server?

Da stelle mer ons mal janz domm und sagen: Ein X-Server ist ein Netzwerkdienst mit Maus-, Tastatur- und Grafikkartentreiber. Und wie kommt man nun auf die Idee, so etwas zu programmieren?

Um das zu verstehen, müssen wir etwa 40 Jahre weit in die Vergangenheit schauen. Computer waren zu dieser Zeit Maschinen, die locker ein Mittelklasse-Wohnzimmer füllten und einen Stromverbrauch jenseits von gut und böse hatten. Um mit diesen Großrechnern zu arbeiten, benötigt man ein Terminal. Terminal und Großrechner kommunizieren mit festgelegten Protokollen; das Terminal gibt die Eingaben der Tastatur in maschinengerechter Form an den Großrechner, und umgekehrt ist es für die menschengerechte Darstellung des Outputs, der vom Großrechner zurückkommt, zuständig.

Daran änderte sich vom Prinzip her auch nichts, als die Firma Tektronix das erste grafikfähige Terminal baute: Weiterhin muß sich das Terminal darum kümmern, den Output vernünftig darzustellen. Mit der grafischen Ausgabe wurde das jedoch ein wenig problematisch: In den Terminals unterschiedlicher Hersteller werden unterschiedliche Grafik-Chips verbaut. Und die Anwendung auf dem Großrechner weiß von all dem nichts. Also benötigt man eine Art „Zwischenschicht“ – nämlich eben eine Netzwerkanwendung (weil sie mit dem Großrechner kommunizieren muß) mit Grafikkartentreiber (um die lokale Grafikkarte korrekt anzusprechen). Das erste X-Window-System wurde 1984 geschrieben.

Der logische Knoten besteht darin, daß mit diesem Netzwerkdienst ein Server auf einem Gerät läuft, das prinzipiell als reiner Client gedacht ist. Die Anwendung auf dem Großrechner, eigentlich selbst ein Serverdienst (zum Beispiel Datenbankserver) wird nun plötzlich zum Client dieses Netzwerkdienstes namens X-Server.

Vom Großrechner zum PC

Rein hardwaretechnisch arbeitet ein PC erstmal anders: Die Ein- und Ausgabe-Hardware ist direkt mit dem Mainboard verbunden und kann damit auch schneller mit diesem kommunizieren. Das Prinzip des X-Servers hat sich jedoch nicht geändert: Es ist immer noch ein Netzwerkdienst mit Tastatur-, Maus- und Grafikkartentreiber, nur daß das „Netzwerk“ jetzt überwiegend lokal läuft.

Natürlich kann man auch die modernen X-Server weiterhin im Netzwerk und auch übers Internet benutzen, aber gerade bei den verbreiteten Programmen xfree86 und xorg stößt man übers Internet da schnell an Grenzen, selbst bei eigentlich schnellen Leitungen. Denn die übertragenen Datenmengen sind schon erheblich. Inzwischen gibt es mit nx allerdings einen X-Server, der das Problem löst. Was wohl noch fehlt, ist ein X-Server, der von Haus aus den Datenverkehr verschlüsselt.