Jeder Bildschirm hat genau einen Server.
Der Server wird vom Hersteller des X-Systems geliefert und normalerweise vom Benutzer nicht geändert. Für das Betriebssystem ist der Server jedoch nur ein weiteres Benutzerprogramm.
Client-Programme
Die zweite Grundkomponente von X bilden die Client-Programme. Das sind
Anwendungsprogramme, die von den Fensterfähigkeiten des Systems
Gebrauch machen. Anwendungsprogramme unter X werden Clients genannt, da
sie tatsächlich Kunden des Servers sind. Sie bitten den Server,
bestimmte Aktionen für sie auszuführen. Sie können kein Fenster und
keinen Bildschirm direkt beeinflussen. Sie können lediglich den Server
bitten, das zu tun, was sie wünschen. Typische Anfragen wären z.B.:
,,Schreibe die Zeichenkette 'Hallo, Welt' in das Fenster XYZ`` oder
,,Zeichne eine Linie einer bestimmten Farbe im Fenster ABC von D nach
E``.
Selbstverständlich bildet das Anfordern von Fensteroperationen nur einen Teil eines Client-Programms. Der andere Teil ist der Programmcode, der sich auf die Aufgabe bezieht, die der Benutzer ausführen will. Als Benutzer verwendet man meist Client-Programme aus verschiedenen Quellen. Einige wesentliche werden zusammen mit dem System geliefert, andere erhält man von Fremdanbietern und manche Benutzer schreiben Ihre eigenen Client-Programme für bestimmte Anwendungen.
Der Kommunikationskanal
Die dritte Grundkomponente von X ist der Kommunikationskanal. Die
Client-Programme nutzen ihn, um Anforderungen an den Server zu schicken,
und der Server sendet über ihn Status- und andere Informationen an die
Client-Programme zurück.
Die genaue Beschaffenheit des Kommunikationskanals ist nicht so wichtig, solange sowohl Server als auch Client wissen, wie er zu benutzen ist. Die auf einem bestimmten System oder Netzwerk benötigten Kommunikationstypen werden durch die X-Window Bibliothek (engl. library) für dieses System unterstützt. Die gesamte Kommunikation zwischen Client und Server wird über diese Bibliothek, die ,,Xlib`` heisst, abgewickelt. Als Folge davon können alle Client-Programme automatisch sämtliche Kommunikationsmethoden benutzen, indem sie auf die Bibliothek zurückgreifen.
Die Client/Server-Kommunikation gliedert sich in zwei große Klassen, die die beiden wesentlichen Operationsweisen im X-System widerspiegeln:
Da Server und Client völlig getrennt sind, hat sich ein neuer Terminaltyp entwickelt, der X-Terminal genannt wird. Ein X-Terminal ist eine abgespeckte Workstation, auf der nur der X-Server laufen soll und sonst nichts. Diese verfügt über eine Tastatur, eine Maus, einen Bildschirm und kann im Netz kommunizieren. Sie verfügt jedoch nicht über ein eigenes Dateisystem und unterstützt keine Mehrzweckprogramme. Diese müssen irgendwo anders im Netzwerk laufen.