Entsprechend der UNIX-Philosophie ist X keine eierlegende
Wollmilchsau ohne eine durchschaubare innere Struktur, sondern in
einzelne Komponenten aufgegliedert:
-
Der X-Server; er ist das Programm, das Tastatur- und Mauseingaben
entgegennimmt und die Resultate auf dem Bildschirm anzeigt. Er enthält
dafür die passenden Gerätetreiber. Die Eingaben werden von ihm nicht
ausgewertet, sondern an die betreffenden X-Clients (s. u.)
weitergeleitet, die wiederum die Resultate an den X-Server
zurückliefern.
-
Die X-Clients; sie sind praktisch die Anwendungen (Textverarbeitung,
Editor, Browser, ...), welche die grafische Oberfläche benutzen wollen.
Vom X-Server bekommen sie die Tastatur- und Mauseingaben mitgeteilt,
die sie betreffen, und melden ihm zurück, was auf dem Bildschirm
erscheinen soll. Dazu wird das so genannte X-Protokoll verwendet.
-
Der Windowmanager; er kümmert sich um das Drumherum, z.B.
Fensterrahmen und Fenstermenüs für die Anzeigen der X-Clients, Menüs
auf dem Desktop, Minimieren und Maximieren der Fenster usw.
Das Zusammenspiel lässt sich in folgender Grafik zusammenfassen
(beachten Sie dabei, dass auch ein Window-Manager nichts anderes als ein X-Client ist):
 |
Diagramm der Architektur; Grafik Rolf Brunsendorf
|
Diese Architektur hat eine ganze Reihe von Vorteilen:
-
Auf Systemen, die keine grafische Oberfläche brauchen (z.B.
Webserver), kann sie einfach weggelassen werden, das sie ja vom
Kernel unabhängig ist; das spart Speicher- und Prozessorressourcen.
-
Das grafische System kann beliebig herauf- und heruntergefahren
werden (z.B. zu Konfigurationszwecken), ohne das das System
verändert oder angehalten werden muss.
-
Die Textkonsolen arbeiten unabhängig von der grafischen Oberfläche;
mit Strg+AltF1 bis F6 kann man auf sie umschalten. Das ist z.B.
sinnvoll, falls man schnell an der Systemkonfiguration was ändern
will und sich somit auf einer Konsole als root einloggt. Zum
X-Bildschirm zurück geht es mit Strg+Alt+F7.
-
Das X-Protokoll setzt auf dem
Internet-Protokoll TCP/IP auf; das
bedeutet, dass Clients und Server auf unterschiedlichen Rechnern
laufen können(!). In einem lokalen Netzwerk, in dem z.B. eine
rechenintensive Ingenieurberechnungssoftware nur von einem einzigen
Rechner verkraftet werden kann, weil alle anderen zu wenig
Hauptspeicher haben, kann man sich einfach von seinem Arbeitsplatz
aus dort einloggen, das Programm starten, und es erscheint auf dem
eigenen Bildschirm, ohne dass man merkt, dass es auf einem ganz
anderen Rechner läuft.
-
Die einzelnen X-Clients müssen nur das X-Protokoll beherrschen,
die Hardware kann ihnen relativ egal sein; das ist zwar heute
allgemein so, aber zur Zeit der Einführung von X war diese Idee
sehr fortschrittlich.
-
Der Windowmanager ist beliebig wählbar; das macht das
Erscheinungsbild individuell konfigurierbar.
X ist ein barocker Dinosaurier in jeder Linux-Distribution: barock,
weil es sehr viele Features und Tools liefert, die man eigentlich
(außer zum Rumspielen und sich darüber Amüsieren) nicht braucht;
Dinosaurier, weil auf der anderen Seite seine interne Struktur auf den
technischen Möglichkeiten aufbaut, die vor zwanzig Jahren bestanden:
-
Das X-Protokoll kennt nur einfache Anweisungen wie: Zeichne Linie
von A nach B; moderne Grafikkarten haben viele Möglichkeiten, um den
Bildschirmaufbau durch die Hardware zu beschleunigen, diese können
aufgrund dieser Kleinkariertheit von X nicht genutzt werden und
liegen brach. Solange X nicht durch ein neues Konzept abgelöst wird,
wird sich daran auch nichts ändern.
-
Die Programmierung von X ist damit auch recht umständlich;
mittlerweile gibt es allerdings so genannte GUI-Toolkits, die auf X
aufsetzen und dem Programmierer das Leben recht einfach machen. Als
Altlast gibt es aber viele alte Programme für X, von denen jedes
eine andere Bedienphilosophie verfolgt und die einen kunterbunt
aussehenden Zoo bilden.
-
X hat absolut nichts mit dem Drucksystem zu tun; das ist zwar nicht
unbedingt eine Designschwäche, hat aber zur Folge, dass es zwei paar
Stiefel sind, z.B. eine Schriftart am Bildschirm anzeigen zu können
oder sie auch ausdrucken zu können.
-
X ist nur ein Verfahren, um mehrere (Text-)fenster anzuzeigen; von
einer grafischen Oberfläche wird aber mehr verlangt. Den Anwender
braucht dies aber wenig zu kümmern, denn im Zusammenspiel mit den
modernen
Desktop Environments von Linux liefert X eine
Benutzeroberfläche, die kaum Wünsche offen lässt.
|