Un système de fenêtres ne doit pas nécessairement avoir de serveur, mais vous pouvez décider de mettre en œuvre un système de fenêtres basé sur un modèle client-serveur. Cela présente plusieurs avantages, car vous séparez clairement les activités du client et du serveur, elles n'ont pas besoin de s'exécuter sur la même machine et il est plus facile de desservir plusieurs clients. C'est actuellement encore très pratique (par exemple lorsque vous entrez ssh
dans une autre machine), mais vous devez vous rendre compte qu'au moment où X a été développé, cela était considéré comme une nécessité: votre machine locale n'était peut-être pas assez puissante pour exécuter le client.
Les canaux nommés ne vous donneraient pas automatiquement l'avantage de pouvoir s'exécuter sur le réseau comme le ferait une implémentation TCP. Mais les canaux nommés n'étaient par exemple pas disponibles sous DOS, DosExtender exécutant Desqview / X (1992), et AFAIK non plus sur VMS. Pour ces implémentations, une communication spécifique à Unix serait un problème.
TCP n'est pas spécifique à Unix et il est possible d'avoir un client exécuté sous VAX / VMS (le développement X a commencé en 1984) et de servir la sortie à votre station de travail graphique basée sur UNIX locale. Extrait du "Système X Window: la référence complète à Xlib, X Protocol, ICCCM, XLFD" ¹:
Au cours de l'automne 1986, Digital a décidé de baser toute sa stratégie de poste de travail de bureau pour ULTRIX, VMS et MS-DOS sur X. Bien que cela nous soit gratifiant, cela signifiait également que nous avions encore plus de personnes à qui parler. Cela a entraîné un certain retard, mais au final, cela a également entraîné une meilleure conception. Ralph Swick de Digital a rejoint Project Athena pendant cette période et a joué un rôle essentiel tout au long du développement de la version 11. La dernière version 10 a été mise à disposition en décembre 1986.
Du "Manuel de référence du protocole X" ²:
Répartition des responsabilités
Dans le processus de conception du protocole X, une grande attention a été accordée à la division des capacités entre le serveur et le client, car cela détermine quelles informations doivent être transmises dans les deux sens via les demandes, les réponses et les événements. Une excellente source d'informations sur la justification de certains choix faits dans la conception du protocole est l'article The X Window System, par Robert W. Scheifler et Jim Gettys, publié dans la revue Transaction on Graphics de l'Association of Computing Machinery, Vol 5, No. 2, avril 1986 Les décisions finalement prises étaient fondées sur la portabilité des programmes clients, la facilité de programmation client et les performances.
Premièrement, le serveur est conçu, autant que possible, pour cacher les différences dans le matériel sous-jacent des applications clientes. ...
Je me souviens que l'article de TOG était une lecture intéressante. Cela a certainement déclenché mon intérêt pour X et (c'était avant WorldWideWeb) la difficulté que nous avions à mettre la main sur plus d'informations jusqu'à ce qu'O'Reilly commence à publier leurs livres de la série X.
¹ X Version 11, Release 4, page 2-X, PDF disponible en ligne ici
² Ceci est de la page 9 de la 2e édition, publiée par O'Reilly, que j'ai achetée en 1990. Il y a des éditions plus récentes mais je n'ai jamais pris la peine d'acheter ceux-ci et ils sont AFAIK uniquement disponibles en papier également. Je ne pense pas qu'ils aient changé la raison d'être du partage des responsabilités.