prev up inhalt next


2.4.1 Begriffe

Das X-Window-System wurde 1984 am MIT entworfen, seit 1987 ist es in der Version X11 verfügbar, mittlerweile als Release 6. Es werden Routinen bereitgestellt zur maschinenunabhängigen und netzwerktransparenten Formulierung von interaktiven grafischen Bedienoberflächen. Der Bildschirm wird aufgeteilt in mehrere, ggf. sich überlappende, Fenster (windows) mit jeweils eigenen Ein-/Ausgabefunktionalitäten. Die Fenster bilden eine baumartige Hierarchie (Kind-Fenster, Eltern-Fenster, Geschwister). Das oberste Fenster (root window) ist der Bildschirm selbst. Hierunter liegen die Top-Level-Fenster der einzelnen Anwendungen. Ihre Plazierung übernimmt der Window-Manager. Die Plazierung der Kinder und Enkel der Top-Level-Fenster regelt der Anwendungsprogrammierer.

X-Programme laufen auf verschiedenen Plattformen unter diversen Betriebssystemen. Das Anwendungsprogramm, genannt X-Client, schickt Aufträge an den X-Server, der die Hardware bedient.

Aus Performancegründen läuft die Client-Software häufig auf leistungsstarken Rechnern im Netz, während für den Server ein kleiner PC oder ein X-Terminal verwendet werden kann.

X-Server und X-Client können auf denselben oder auf verschiedenen Rechnern laufen. Sie kommunizieren mit Hilfe des X-Protokolls auf asynchrone Weise (gepuffert). Es gibt vier Arten von Nachrichten: requests, replies, events und errors.

Der X-Server hat exklusive Kontrolle über die grafischen Ausgabegeräte einschließlich Tastatur. Der Server verwaltet die Ressourcen, das sind komplexe Datenstrukturen für Windows, Pixmaps, Fonts, Grafik-Kontexte. Der Client referiert die Ressource über ihre ID. Dadurch wird der Kommunikationsbedarf reduziert; außerdem können mehrere Clients dieselben Ressourcen verwenden.

Der X-Client schickt Kommandos oder fragt Zustände ab. Ein Client kann Kontakt zu mehreren Servern halten. Der Window-Manager ist ein weiterer X-Client -- und damit austauschbar. Er plaziert, verziert und ikonifiziert die Top-Level-Fenster.

Ein grafisches Ausgabegerät wird display genannt. Dazu gehören ein Grafik-Speicher und ggf. mehrere Bildschirme, genannt screens. Ein display-Name setzt sich zusammen aus

    (<Hostname> | <Internet-Nr> ) : <Server-Nr> [.<Screen-Nr>]
und kann über die Environmentvariable DISPLAY gesetzt werden:
    sh% export DISPLAY=magni:0
    sh% export DISPLAY=131.173.12.30:0
Zuvor muß der angesprochene Server seine Einwilligung gegeben haben. Um z.B. dem Rechner zeus die Ausgabe auf dem Rechner magni zu erlauben, setzt man auf magni das Kommando ab
    sh% xhost +zeus
X-Clients arbeiten ereignisorientiert, d.h., sie reagieren auf events, die der Server an sie schickt. Durch Event-Masken legt der Client fest, welches Fenster über welche Ereignisse informiert werden soll.


prev up inhalt next