Mon réseau d’entreprise
8.3 Le serveur graphique X
Pour afficher une application graphique sur une station Linux, il y a principalement deux méthodes :
- X-Window
-
est la combinaison d’un protocole réseau et d’une solution graphique ;
- le framebuffer
-
est une solution très locale et qui dépend du matériel physique.
X-Window est donc la solution majoritairement présente sur les stations de travail GNU-Linux. Il offre une solution d’affichage graphique indépendante du matériel. Il est composé de deux logiciels : le serveur et le client.
Un serveur X dépend du matériel présent sur l’ordinateur. Les cartes graphiques offrent des modes de fonctionnement dégradé pour assurer une compatibilité avec les anciens logiciels. Un serveur X peut donc fournir un affichage dégradée si les pilotes sont absents ou défaillants. Il existe deux types de modules : les modules libres et les modules privatifs.
Les modules privatifs sont simple à gérer. Les mises à jour s’effectuent sans problèmes. Les versions privatives sont parfois gratuites. Il faut suivre une procédure spécifique pour ce matériel. L’expérience montre que cette procédure évolue relativement souvent. Lors des mises à jour du système, il faut parfois tout déinstaller avant de tout réinstaller les applications privatives. De plus, les mises à jour des pilotes pour un matériel passé est parfois très aléatoire.
Installer des logiciels privatifs affaibli grandement la sécurité d’un système.
Le framebuffer est une solution souvent utilisée dans les systèmes embarqués. Les applications doivent connaître le matériel spécifique pour l’utiliser.
Il existe d’autres méthodes pour afficher du graphique, comme Wayland annoncé comme le successeur de X ou d’autres solutions plus anecdotiques.
8.3.1 Le serveur X
Le serveur est diffusé par la fondation X.Org. En résumé, le serveur gère le clavier, la souris et l’écran (voire les écrans). Il offre une interface réseau permettant à des applications de se connecter à distance. Cette connexion est souvent désactivée car les données circulent en clair et n’offrent que peu d’authentification. Néanmoins, l’application ssh permet de sécuriser ce genre de connexion. L’exécutable est Xorg. Il n’est pas lancé interactivement.
=> pgrep -l X 2164 Xorg
Le lancement se fait soit depuis la ligne de commande en utilisant xinit ou startx soit en installant un Display Manager comme lightdm. Ce gestionnaire offre une fenêtre dans laquelle il est possible d’entrer le couple (login, mot de passe).
8.3.2 Les clients X
Les applications graphiques vont se connecter au serveur X. Elles sont donc considérées comme des clients. Il en existe de nombreux. Les clients initiaux (depuis les années 80) sont relativent simples. Il y a :
- xlogo
-
Ne fait rien, mais affiche le logo X, c’est utile pour prouver que l’affichage est possible ;
- xeyes
-
logiciel permettant de suivre le travail de l’étudiant ;
- xterm
-
un terminal graphique, il en existe d’autres mais moins pratiques ;
- xev
-
affiche les événements ;
- xcalc
-
une calculatrice ;
- xdpyinfo
-
fournit des informations sur le serveur, en particulier sa dimension :
$ xdpyinfo| grep dimen dimensions: 4800x900 pixels (1270x238 millimeters)
- xlsclients
-
liste les clients connectés ;
- xmessage
-
affiche un message à l’écran ;
- xwininfo
-
affiche les paramètres d’une fenêtre ;
- xrandr
-
affiche les écrans connectés et leur géométrie.
Parmi les clients, certains ont un usage particulier :
- Terminaux
-
Les terminaux, comme xterm, permettent d’entrer des commandes en utilisant un shell ;
- gestionnaire de fenêtres
-
Un gestionnaire de fenêtre permet de déplacer les fenêtres, les dimensionner, les iconfier, etc.
- Les suites bureautiques
-
offre une expérience utilisateur riche. Quand elles fonctionnent bien, elles peuvent être agréable. Mais c’est le programmeur de la suite qui décide de beaucoup de choses, comme les connexions réseau.
Parmi les expériences utilisateurs riches les suites bureautiques offrent des possibilités de partage de document. Autrement dit : elles ouvrent des connexions réseau à l’insu du propriétaire.
8.3.3 Affichage distant
Le protocole réseau X permet d’afficher des fenêtres graphiques à distance. Les connexions étant établies en clair, ce service est désactivé le plus souvent. Le logiciel ssh permet de réutiliser ce mécanisme sans modifier le serveur X.
Pour cela, il faut deux ordinateurs : l’un, chip aura un serveur X, l’autre, dale un serveur ssh. L’utilisateur s’installe devant la station de travail chip et commence à travailler. Puis, il souhaite exécuter une application graphique sur dale. Pour cela, il se connecte avec son compte sur dale et lance l’application graphique. Avec la configuration par défaut, l’application n’arrive pas à se lancer.
arno@chip:~$ ssh stud@dale stud@dale's password: Linux dale 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u5 (2018-09-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. stud@dale:~$ xlogo Error: Can't open display: stud@dale:~$
Il n’y a pas de connexion entre le client distant et le serveur X. Pour permettre la connexion, nous allons ajouter l’option -X lors de la connexion ssh.
arno@chip:~$ ssh -X stud@dale stud@dale's password: Linux dale 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u5 (2018-09-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Oct 5 08:11:40 2018 from 10.33.106.2 stud@dale:~$ xlogo
La fenêtre graphique s’ouvre, le shell ne rend pas la main à l’utilisateur, comme dans la figure 8.3. Dans cette figure, nous voyons que l’utilisateur arno sur chip (et sur l’écran de chip) se connecte sur dale. Il lance une fenêtre xlogo qui s’affiche sur l’écran de chip.
Il est alors possible de lancer un logiciel qui n’est présent que sur un ordinateur ou qui doit s’exécuter spécifiquement sur un ordinateur distant, comme une machine virtuelle sur le serveur de virtualisation.
