Netzwerktransparenz
Die Eigenschaft von X11, dass ein Programm und der Bildschirm, auf den es zeichnet, auf verschiedenen Rechnern liegen können, ohne dass das Programm einen Unterschied bemerkt.
Das X-Protokoll läuft über einen gewöhnlichen Bytestrom, und dem Server ist gleichgültig, woher er kommt: ein Unix-Socket auf demselben Rechner, TCP-Port 6000 plus Display-Nummer über das Netz oder ursprünglich DECnet. Die Umgebungsvariable DISPLAY benennt das Ziel, und ein Programm, bei dem sie auf einen anderen Rechner zeigt, öffnet seine Fenster dort, ohne dass eine Zeile Code geändert wird. Das machte X-Terminals in den späten 1980ern möglich: ein Bildschirm, eine Tastatur und ein X-Server im ROM, während die gesamte Rechenarbeit auf einem gemeinsamen Unix-Rechner im Serverraum stattfand.
Die Idee alterte schlechter als das Protokoll. Jeder Xlib-Aufruf, der eine Antwort braucht, ist ein Round Trip, weshalb Latenz mehr zählt als Bandbreite, und die später hinzugekommene Schwerarbeit – Shared Memory über MIT-SHM, direktes 3D-Rendering über DRI – funktioniert nur lokal. LBX versuchte den Verkehr zu komprimieren und NoMachines NX machte es besser, doch auf einem modernen Desktop läuft kaum noch etwas über den Weg, der einst der ganze Zweck war. Wayland zog die Konsequenz und hat gar kein Netzwerkprotokoll; Fernzugriff ist Sache des Compositors. Ein Programm auf einem anderen Rechner per SSH laufen zu lassen ist, was vom Traum übrig blieb, und es funktioniert noch.