X-Terminal arbeitet nach dem Client-Server-Prinzip

X-Window-System erleichtert Arbeit der Software-Entwickler

19.07.1991

Das X-Window-System besteht aus zwei Teilen, dem Server, der für den Bildaufbau zuständig ist, und dem Client-Host. In den letzten Jahren haben X-Terminals einen steilen Aufschwung hinter sich. Entscheidend für den Erfolg war vor allem die frühzeitige Standardisierung. Günter Harbeck* beschreibt die Entwicklung der X-Terminals und ihre technischen Eigenschaften.

Grafikterminals wurden seit Anfang der siebziger Jahre für eine breite Anwendungspalette eingesetzt. Sie besaßen die gleiche Schnittstelle, wie sie auch von Alphaterminals genutzt wurde, in der Regel RS-232(V24). Mit diesem Interface lassen sich nur ASCII-Zeichen, also die Kodierung für Textdaten und einige festgelegte Steuerzeichen, übertragen. Grafik mußte deshalb als Verschlüsselung von Textzeichen gesendet werden, was in vielen Fällen nicht akzeptabel lange Übertragungszeiten zur Folge hatte.

Erheblicher Kostenvorteil

Die Weiterentwicklung der Grafikterminals hat zu einer neuen Generation von Endgeräten, den X-Window-Terminals geführt. Sie entstammen der Workstation-Entwicklung und sind speziell weiterentwickelt worden, um zusätzliche Arbeitsplätze in Workstation-Netzwerke zu integrieren. Gegenüber den Workstations bieten sie einen erheblichen Kostenvorteil, da nur die X-Window-Funktionalität vorhanden sein muß. Zudem entfällt das Betriebssystem, deshalb werden keine Ressourcen gebunden. Ebenso müssen der Mikroprozessor und der Speicherplatz nur für die X-Windows-Aufgaben ausgelegt sein, die Systemverwaltung entfällt für diesen Arbeitsplatz. Trotzdem steht eine Workstation-ähnliche Arbeitsumgebung zur Verfügung.

Die Leistung entspricht der von Workstations, und bei der Flexibilität und Funktionalität brauchen keine Abstriche gemacht werden. X-Window-Terminals, auch X-Stations genannt, benutzen das X-Window-System für den Aufbau der Bildschirminformation.

X-Windows, das besonders im Unix-Umfeld eingesetzt wird, bietet in einer fensterorientierten Benutzeroberfläche eine mausunterstützte Bedienung, integrierte Netzwerkunterstützung und -transparenz, Grafikschnittstelle und Multitasking-Fähigkeit. 1984 wurde das Projekt "Athena" am Massachusetts Institute of Technology (MIT) begonnen, und 1986 kam die erste kommerziell verfügbare Version auf den Markt. Damit das System kontrolliert weiterentwickelt werden konnte, entstand 1988 das

X-Konsortium, das jetzt die Aufgabe hat, die einzelnen Interessen zu koordinieren und die künftige Ausrichtung zu bestimmen. Die zur Zeit gültige Version ist X11R4, wobei im nächsten Jahr X11R5 erwartet wird.

Konzeptionell besteht das X-Window-System aus zwei Teilen, dem Server in der Anzeigeeinheit und dem Client beim Rechner. Jeder Teil übernimmt die am jeweiligen Ort anstehenden Aufgaben. Zwischen diesen bei den Parts findet die Kommunikation statt. In einer Workstation läuft dies innerhalb des Gerätes, beim Terminalbetrieb über das Netzwerk. Der Server ist verantwortlich für alle Ein- und Ausgabegeräte. Er erzeugt und manipuliert Fenster auf dem Schirm, produziert Text und Grafik und steuert Tastatur und Maus. Der Server realisiert eine portierbare Ebene zwischen der Anwendungssoftware und der Darstellungshardware.

Er folgt den Instruktionen des Clients, inklusive dem Startbefehl. Um eine Verbindung aufzubauen, muß der Client den Server spezifizieren, auf dem das Anwendungsprogramm dargestellt werden soll.

Für den Anwender ist dieser Client-Server-Prozeß im allgemeinen unsichtbar. Wenn das System mit einem Desktop-Manager geliefert wird, der die Programme und Daten-Files als Icons auf dem Bildschirm darstellt, startet der Anwender eine Applikation durch Anklicken eines Icons mit der Maus. Ohne den Desktop-Manager muß der Name des Programmes eingegeben werden. In jedem Fall braucht der Anwender keine Kenntnisse von Netzwerken zu haben. Das Konzept sieht die konsequente Nutzung von Standards wie Unix und TCP/IP vor. Es bietet die Möglichkeiten von Timesharing und verteilter Rechnerleistung und unterstützt als ein einzelnes Netzwerk-Computersystem die Rechner vieler Hersteller.

Die Anwender haben gleich zeitig Zugriff auf alle Rechner im Netzwerk und können den Verteilungsgrad der Rechnerleistung wählen. Das Netzwerk-Management wird dagegen an zentraler Stelle durchgeführt. Weiterhin ermöglicht X-Windows das gleichzeitige Betrachten mehrerer Applikationen, eine gleichbleibende Schnittstelle zu Rechnern verschiedener Anbieter und eine herstellerunabhängige Schnittstelle für die Software-Entwickler.

Software muß nur einmal geschrieben werden

Praktisch jeder relevante Hersteller unterstützt das X-Window-System. Deshalb wird diese Schnittstelle auch von den Software-Entwicklern mehr und mehr bevorzugt und bei Implementierungen genutzt. Die Software muß nur einmal geschrieben werden, da sich die gleiche Grafikschnittstelle für unterschiedliche Systeme nutzen läßt Experten schätzen, daß bis zu 90 Prozent des Aufwandes zum Erzeugen einer Fenster- und Mausapplikation in die Entwicklung der Benutzerschnittstelle investiert werden müssen. Eine Implementierung auf ein anderes System wird so zu einer sehr großen Aufgabe. Die Standardisierung von X-Windows macht diese Portierung sehr einfach und gibt mehr Zeit, die Anwendungssoftware zu verbessern.

Eine Anwendung, die die Möglichkeiten des X-Servers ausnutzt, wird Client genannt. Der Client kommuniziert mit dem Server über das Netzwerk durch ein asynchrones Protokoll. Auf der Client-Seite bildet die Xlib die erste Schale. Sie stellt die

C-Programmierschnittstelle zum X-Server zur Verfügung Darstellungs- und Window-Funktionen, grafische Funktionen, die Eventbehandlung und Utilities sind weitere Bestandteile der Xlib. Jeder X-Client kommuniziert über Xlib-Aufrufe mit dem Server. Oberhalb der Xlib ist das Xtoolkit an geordnet. Dort sind weitere Funktionen vorhanden, die eine bequeme Programmierung ermöglichen. Ein Programm, das die Worte "Guten Tag" mit veränderbaren Farben und wählbaren Zeichensätzen auf den Bildschirm bringt, die den Fenstermanipulationen folgen, benötigt etwa 150 Programmzeilen, wenn man dazu die Aufrufe aus der Xlib benutzt. Ein equivalentes Programm mit den Aufrufen eines Toolkits kann weniger als ein Dutzend Programmzeilen aufweisen. Mit dem Toolkit werden auch die sogenannten Widgets programmiert.

Widgets sind grafische Objekte, mit denen das Anwendungsprogramm gesteuert werden kann. Sie sind in Form von Pop-Up-Menüs, Druckknöpfen und Drehknöpfen vorhanden, um durch Anklicken mit der Maus die entsprechenden Funktionen auszulösen. Diese Widgets können unterschiedliches Aussehen und Formen haben, denn bei der Standardisierung hat man den Xtoolkit und die Widgets nicht mit festgelegt. So kann hier jeder seine eigenen Tools definieren und benutzen. Dies ist aber nicht empfehlenswert, da es einfacher und zeitsparender ist, ein existierendes Toolkit heranzuziehen.

Beim Window-Manager gibt es unterschiedliche Ansätze. Die bekanntesten sind OSF/Motif, Open Look und Decwindows, Systeme, die es ermöglichen, dem sehr flexibel zu gestaltenden X-Window-System eine einheitliche Benutzeroberfläche zu geben. Ein integrierter Stylguide beschreibt das Aussehen von Applikationsoberflächen. Mit einem mitgelieferten speziellen Toolkit lassen sich Applikationen sofort so schreiben, daß sie dem Stylguide entsprechen. Da sie unterschiedliche Widgets benutzen, ist das Erscheinungsbild der einzelnen Systeme unterschiedlich.

Auch ein Window-Manager gehört zu diesem speziellen Toolkit. Es ist ein Client mit besonderen Aufgaben, der wie jedes andere Programm auch auf dem Host oder auf der Workstation läuft. Er steuert das Layout und das Verhalten der Fenster und stellt Menüs zur Fenstermanipulation und Systemkonfiguration zur Verfügung. Da diese Toolkits eine Schale über der Xlib bilden und der Client mit dem Server nur über die Xlib kommuniziert, können auch Programme auf X-Terminals oder Workstations dargestellt werden, die mit Motif, Decwindows oder Open Look geschrieben worden sind.

Die Grafikfunktionalität umfaßt die Erzeugung von Linien, Kreisen und Füllmustern und die Textausgabe zur Beschriftung von Grafiken. Zusätzlich werden Bit-Block-Transferoperationen, das sind Manipulationen auf Bildpunktebene, durchgeführt und die Verwaltung der Farbzuordnung über virtuelle Farbtabellen organisiert, je eine pro Fenster. Text wird auf dem Bildschirm mit Hilfe der Zeichensätze dargestellt. Dabei sind in diesen Fonts die Bildpunktinformationen aller Zeichen abgelegt. Bei der Benutzung wird nun zum Beispiel nur noch der Zeichensatz angegeben und der zu zeichnende Buchstabe in der richtigen Form dargestellt, wobei eine große Auswahl unterschiedlicher Zeichensätze zur Verfügung steht.

Das X-Protokoll stellt die Verbindung zwischen Client und Server her. Es spielt dabei keine Rolle, ob das Protokoll die Informationen innerhalb eines Gerätes oder über ein Netzwerk weitergeben muß. Die unterschiedlichen Verknüpfungsmöglichkeiten sind schon bei der Entwicklung des Systems berücksichtigt worden, und aus diesem Grund gestattet diese Technologie sehr flexibel gestaltbare Konfigurationen, bei der die Zuordnung der jeweiligen Komponenten sich auch nachträglich noch verändern läßt.

Ein Server kann mehrere Clients und ein Client mehrere Server unterstützen. Dies bedeutet, daß auf jeder Seite recht leistungsfähige Hardware zum Einsatz kommt, denn es müssen ja gleichzeitig mehrere Prozesse ablaufen. Das heißt aber auch daß auf einem Bildschirm in mehreren Fenstern gleichzeitig unterschiedliche Anwendungen von unterschiedlichen Rechnern ablaufen können und damit eine Voraussetzung für das Network Computing erfüllt ist.

Noch Raum für Erweiterungen

Trotz der Popularität von X gibt es doch noch Raum für Erweiterungen. Die Programmierer konzentrierten sich auf die Lösung der Probleme bei der Unterstützung von Windows, bei Eingabe und einfacher Ausgabe von Grafik in heterogenen Netzwerken. Die direkte Unterstützung von dreidimensionaler Grafik und Bildpunktverarbeitung wurde zurückgestellt. Historisch gesehen lief parallel zur Entwicklung zur 3D-Erweiterung für X-Windows auch die Weiterentwicklung von PHIGS zu PHIGS+ .

Dies beinhaltete zusätzliche Eigenschaften wie Lichtquellen, Depth Cueing und Reflexionen sowie weiterentwickelte Grafikelemente. Da beide Arbeitsgruppen in vielen Fällen parallel arbeiten, wurde 1987 bei einer Sitzung am MIT beschlossen, die bisherige 3D-Entwicklung als Basis für das zukünftige PEX zu benutzen.

PEX (eine PHIGS/PHIGS+ Erweiterung für X) ist eine Erweiterung des X-Window-Systems, die die 3D-Grafik innerhalb unterstützt. PEX erlaubt die Transformation von 3D-Objekten in eine 2D-Projektion im Server und damit eine wesentliche Entlastung des Rechners. Sie wurde entwickelt, um die PHIGS/PHIGS+ - Funktionalität in einem netzwerktransparenten Umfeld nutzbar zu machen. Bisher war dies nur geräteintern auf Spezialsystemen möglich. PEX besteht aus drei Hauptteilen: der PEX-Protokoll-Spezifikation, der PEX-Server-Erweiterung und der Schnittstelle für die Anwendungsprogrammierung (API). Die Abbildung (PEX-System-Modell, auf Seite 30) zeigt die Zusammenhänge und das Client-Server-Modell.

Das MlT-X-Konsortium plant, eine Beispielimplementierung von PEX als Bestandteil der Version X11R5 zu veröffentlichen. Die Programmierschnittstelle beinhaltet hierbei PHIGS und diejenigen Teile von PHICS+, die als stabil gelten. Eine wichtige Voraussetzung dabei ist, Anwendungen, die bereits mit PHIGS und PHIGS+ programmiert worden sind, einfach umstellen zu

können. Außerdem muß betont werden , daß das PEX-Protokoll der einzige Teil ist, der standardisiert ist. Niemand kann daran gehindert werden, eine andere Programmierschnittstelle in Verbindung mit dem PEX-Server zu benutzen.

X-Stations müssen hohe Leistung bringen

Eine X-Station wird direkt an das lokale Netzwerk angeschlossen. Dazu sind der Transceiver- und der Coax-Anschluß vorhanden. Jeder Rechner im Netzwerk steht so für die Bearbeitung der Anwendungen zur Verfügung. In den Fenstern können unterschiedliche Programme von verschiedenen Rechnern ablaufen. Dadurch ist eine höhere Flexibilität als bei den herkömmlichen Terminals gegeben.

Die X-Stations müssen relativ hohe Leistungen aufweisen, um die Aufgaben in ansprechender Zeit abzuwickeln. Einzelne Geräte sind mit einer Dual-Prozessor-Architektur ausgestattet. Zwei Prozessoren teilen sich die Aufgaben, die in der X-Station anfallen. Dabei ist einer speziell für die Erzeugung der Grafik vorgesehen, und der zweite übernimmt die Kommunikation mit dem Rechner über das Netzwerk und die Datenflußsteuerung in der X-Station.

Neuerdings sind auch X-Terminals auf den Markt gekommen, die neben der X-Window-Funktionalität auch die PEX-Funktionalität aufweisen. Damit kann man heute schon Programmentwicklung oder Entwicklungsarbeit im Bereich der netzwerkweiten 3D-Grafikverarbeitung betreiben. In dem Speicherplatz der X-Stations, der bis über 20 MB betragen kann, werden die Fonts und Pixmaps abgelegt. Außerdem werden dort die Inhalte der Windows abgespeichert, die je nach gewählten Funktionen auch dann gespeichert bleiben, wenn sie zum Icon geschlossen werden beziehungsweise von anderen Windows ganz oder teilweise überdeckt sind. Diese Funktionen heißen "Backing Store" und "Save Under". Der Grafikprozessor schreibt die Daten in das Video-RAM, von wo sie über RAMDACs (Digital-Analog-Wandler) in das Videosignal umgewandelt werden. Dort findet die Definition und Speicherung der Farbtabelle statt. Das

Setup-Menü läuft als lokaler Client in der X-Station. Die zum Menüsystem gehörenden Fenster ähneln Motif. Sie sind einfach zu bedienen und beinhalten zusätzlich Hilfsfunktionen. Das Setup-Menü gestattet das Wählen von Produktoptionen wie Tastaturen und anderen Eingabegeräten sowie das Konfigurieren des Font-Zugriffs, des Boot-Hosts sowie des Netzwerk-Protokolls. Ausführliche Netzwerkstatistik wird ebenfalls angeboten. Ein anderer lokaler Client kann der Motif Window Manager sein. Läuft er im Terminal ab, erspart dies Rechenleistung auf dem Rechner und reduziert Datenübertragung im Netzwerk. Eine große Palette von Eingabegeräten ist erhältlich, die neben Tastatur und Maus auch eine Rollkugel, einen Barcode-Leser, ein grafisches Tablett oder einen berührungsempfindlichen Bildschirm beinhaltet.

X-Terminals kommen mit weniger Elektronik aus als Workstations. Deshalb kann bei einigen Modellen die Konvektionskühlung wegfallen. Ein Ventilator wird nicht benötigt. Dies vermindert nicht nie Geräte auch durch Verwendung von weniger Teilen zuverlässiger.

Im direkten Vergleich mit der Diskless-Workstation liegt der Preisvorteil eindeutig auf der Seite der X-Stations. Nicht nur der Gerätepreis ist hier anzusetzen, auch die Kosten auf der Serverseite schlagen hier zu Buche. Zum Beispiel braucht jede "Diskless"-Workstation rund 30 MB Speicherplatz auf einer Disk zum Booten gegenüber 1 MB einer X-Station Der Datentransfer auf dem Ethernet ist bei einem X-Terminal niedriger als bei einer Workstation, da keine Notwendigkeit für das Pagen eines virtuellen Memory-Management-Systems besteht.