GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

X-Window - Système d'environnement graphique Unixien

A la différence des environnements graphiques rencontrés sur Windows et Macinstosh, qui présentent une structure monolithique, celui qui a été mis en place il y a plus de 30 ans sur les stations Unix présente une architecture de type client-serveur. Le client peut se trouver sur une machine différente du client, permettant de déporter l'affichage de manière native et efficace.

C'est le serveur X qui se charge de la gestion du matériel. C'est le client qui cherche à afficher des informations visuelles. Aujourd'hui, le serveur historique X11, utilisé par X/Motif, a été remplacé par un serveur Xorg, lui-même un fork de Xfree86. De nouveaux serveurs X ont fait leur apparition comme Wayland ou Quartz mais le principe est le même que pour les premiers serveurs X : séparation du (des) client(s) et du serveur. Celui-ci s'accompagne d'un gestionnaire de fenêtres que vous pouvez remplacer à votre guise. Le window manager aura pour mission de gérer les fenêtres créées par le serveur X pour vous permettre d'appuyer sur des boutons pour déplacer, redimensionner, fermer, ouvrir... On retrouve ici des noms connus comme Xfwn, Compiz, OpenBox, Monad...

Un bémol tout de même sur la bonne séparation des différents éléments : il est parfois possible qu'un environnement de bureau déploie son propre gestionnaire d'affichage (comme avec Qt ou Gnome) en utilisant directement la bibliothèque Xlib, coeur du fonctionnement du système X. Cela rend les choses moins évidentes à distinguer. Rappelez-vous seulement que c'est du mode client/serveur.

Un affichage avec X se décompose en InputDevices (clavier, souris), en Devices (avec les cartes graphiques) et en Monitor (les écrans raccordés). Le tout forme un DISPLAY (unité d'affichage). Un DISPLAY est identifié par un couple nom_machine:numero_sequence. Ce numéro commence à 0 et s'incrémente pour serveur X démarré. La notation peut également être de la forme nom_machine/unix:numero_sequence, stipulant que l'écoute va se faire sur une socket unix locale, et non pas sur tcp, sur le LAN.

Pour compléter les informations, ce qui est appelé X est généralement soit le serveur X lui-même, soit le protocole X, utilisé pour communiquer entre les différentes briques qui le compose. La bibliothèque qui permet d'interagir avec ce serveur X est Xlib.