Cours architecture et fonctionnement X-Window, tutoriel & guide de travaux pratiques en pdf.
– Présentation générale
X-Window est une interface graphique multi-fenêtre distribuée, on l’appelle souvent X. XWindow est issu de travaux réalisés au Massachusetts Institute of Technology ( MIT) dans le milieu des années 80. L’objectif initial était de créer un système permettant de travailler sur des machines hétérogènes en réseau tout en disposant d’une interface utilisateur graphique commune. Très rapidement le monde industriel s’est rendu compte de l’intérêt de X et un consortium unissant de gros constructeurs informatiques (DEC, HP, IBM, SUN,…) et le MIT a été créé. Le consortium gère l’évolution de X et garantit sa pérennité.
– L’architecture X-Window
Est construit autour d’un modèle client/serveur. Un client X est un demandeur de ressources graphiques ; c’est un programme d’application qui se déroule quelque part sur une machine du réseau. Un serveur X assure la gestion des ressources graphiques d’un poste de travail et les interactions avec les clients X (gestion de l’écran, du clavier et de la souris). La figure ci-dessous montre les relations entre un serveur X et quatre clients X s’exécutant sur des machines différentes du réseau.
Le serveur X analyse les données en provenance des clients et sait dans quelle fenêtre (portion d’écran) faire l’affichage correspondant. Ainsi il est possible visualiser le résultat de plusieurs clients, en provenance de n’importe quelle machine du réseau, sur un seul serveur (un seul écran). De plus, ce dernier analyse la position du pointeur de la souris pour déterminer à quel client transmettre les informations saisies au clavier par l’utilisateur.
– Le fonctionnement
La partie communication est basée sur l’interface socket qui permet de faire dialoguer des processus ne résidant pas sur une même machine. L’aspect communication proprement dit est donc entièrement sous traité. Pendant leur exécution les applications (les clients X) doivent échanger des messages avec un serveur X indépendamment du type des machines utilisées : c’est le rôle du protocole X. Il définit quatre types de paquets d’échanges entre serveurs et clients : – les requêtes d’un client vers un serveur ; – les réponses du serveur aux requêtes des clients ; – la signification par le serveur des événements du type : une touche du clavier a été enfoncée ou on a cliqué sur un bouton de la souris ; – l’envoi par le serveur d’éventuelles erreurs.
Le protocole X constitue la base de l’échafaudage X-Window, sa pérennité est garantie par le consortium. La Xlib est une interface de programmation du protocole X, elle est écrite en langage C. Les appels à la Xlib génèrent du protocole X. La Xlib fait partie du standard garanti par le consortium, elle est installée sous le nom de libX11.a. La manipulation de fenêtres par la Xlib est relativement fastidieuse pour le programmeur. Un niveau supérieur, destiné à faciliter la programmation d’applications a donc été créé : X Toolkit Intrinsics. Cette bibliothèque, connue sous le nom d’ Intrinsics ou Xt, introduit la notion de widgets. Un widget est une structure de données accompagnant une fenêtre permettant ainsi de qualifier aisément certains paramètres (taille, fond, contours …). Une hiérarchie des widgets est introduite par Xt, ainsi, en détruisant une fenêtre, on peut d’un seul coup faire disparaître toute sa descendance. La bibliothèque Xt est installée sous le nom de libXt.a et fait partie du standard garanti par le consortium.
……