Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. LINUX
  3. Interfaces graphiques
Extrait - LINUX Maîtrisez l'administration du système (7e édition)
Extraits du livre
LINUX Maîtrisez l'administration du système (7e édition) Revenir à la page d'achat du livre

Interfaces graphiques

Comment fonctionne un environnement graphique ?

Linux propose une architecture graphique permettant aux utilisateurs d’accéder au système et aux applications via une interface graphique simple ou via différents environnements de bureau complets. Cependant ces fonctionnalités sont souvent désactivées sur les serveurs, où l’interface ligne de commande (CLI, Command Line Interface) est privilégiée car moins consommatrice de ressources et plus facile à automatiser par des scripts.

1. Le système X Window

Alors que dans d’autres systèmes d’exploitation l’interface graphique est intégrée au système, Linux dispose d’une architecture graphique optionnelle implémentée au-dessus du système lui-même. Le système graphique de base, d’origine Unix, s’appelle X Window et s’appuie sur une architecture client-serveur X11, constituée de serveurs et de clients X communiquant à travers le protocole client-serveur X11..

X Window constitue un système graphique complet chargé de dessiner et de gérer les événements des composants habituels d’un environnement graphique utilisateur GUI (Graphical User Interface) : fenêtres, boutons, menus, listes, ascenseurs, cases à cocher, curseur de souris, etc. X Window peut afficher, gérer et afficher ces composants graphiques mais n’est pas chargé de les mettre en place. X Window ne gère que les interactions entre l’homme et la machine.

images/chap9_001.png

Architecture X Window

X windows fonctionne en mode client/serveur. Le serveur X est un composant logiciel gérant les périphériques graphiques : clavier...

Wayland

Wayland est un protocole de communication entre un gestionnaire de fenêtres (le compositeur) et ses clients. La bibliothèque Wayland est utilisable nativement par les applications. Wayland a été développé dans le but de remplacer Xorg, devenu lourd, moins sûr (les communications entre le client et le serveur transitent en clair), et peu performant. L’implémentation de Wayland sous Linux se nomme Weston.

Wayland ne rend pas caduque l’utilisation de X Window : certains environnements et applications en ont encore besoin. Le composant XWayland permet une compatibilité des applications X avec Wayland. 

Les versions les plus récentes des distributions implémentent généralement Wayland par défaut, mais peuvent également utiliser Xorg. Les versions plus anciennes, Ubuntu 19.10, openSUSE 15.1 et Red Hat Linux 7 utilisent Xorg nativement par défaut. 

Les variables d’environnement WAYLAND_DISPLAY ou XDG_SESSION_TYPE permettent de savoir si Wayland est utilisé.

Exemple

$ echo $WAYLAND_DISPLAY  
wayland-0 

ou

$ echo $XDG_SESSION_TYPE 
x11 

La commande xlsclients fournit la liste des clients X actifs. Si une application graphique démarrée est absente, c’est qu’elle utilise Wayland.

Exemple

$ xlsclients 
fedora  gnome-shell 
fedora  gsd-xsettings ...

Xorg

Linux utilisait initialement l’environnement X Window libre XFree86. Suite au changement de licence de ce logiciel, un « fork » (création d’une nouvelle branche de développement) a été à l’origine de la création de X.org. Appelé communément Xorg, il est devenu l’environnement X Window principal de Linux. 

X.org est rapide, modulaire, disponible avec de nombreux pilotes, compatible. Les dernières versions détectent automatiquement le matériel, sans qu’il faille le déclarer dans un fichier de configuration complexe. 

images/chap9_009.png

Logo Xorg

La dernière version de Xorg, en février 2020, est la 1.20.7 qui se base sur la version 7.7 de X11.

1. Installation

Xorg est disponible avec toutes les distributions Linux, même si Wayland est souvent installé par défaut dans les versions récentes.

Xorg est installé par défaut dans /usr/X11R6. Cependant de nombreuses distributions placent maintenant les binaires, les bibliothèques, les fichiers partagés, etc., dans l’arborescence classique /usr et notamment les modules et les pilotes dans /usr/lib/xorg (ou /usr/lib64/xorg).

La configuration est dans le répertoire /etc/X11.

Exemple

Paquets logiciels Xorg installés sur une distribution Debian 12 :

# dpkg -l| grep ^ii| grep -i xorg | awk '{print $2,$3}' 
xorg 1:7.7+23 
xorg-docs-core 1:1.7.1-1.2 
xorgxrdp 1:0.9.19-1 
xserver-xorg 1:7.7+23 
xserver-xorg-core 2:21.1.7-3 
xserver-xorg-input-all 1:7.7+23 
xserver-xorg-input-libinput 1.2.1-1+b1 
xserver-xorg-input-wacom 1.1.0-1 
xserver-xorg-legacy 2:21.1.7-3 
xserver-xorg-video-all 1:7.7+23 
xserver-xorg-video-amdgpu 23.0.0-1 
xserver-xorg-video-ati 1:19.1.0-3 
xserver-xorg-video-fbdev 1:0.5.0-2 
xserver-xorg-video-intel 2:2.99.917+git20210115-1 
xserver-xorg-video-nouveau 1:1.0.17-2 
xserver-xorg-video-qxl 0.1.5+git20200331-3 
xserver-xorg-video-radeon 1:19.1.0-3 
xserver-xorg-video-vesa 1:2.5.0-1+b1 
xserver-xorg-video-vmware 1:13.3.0-3.1+b1 

2. Configuration de Xorg

a. Via la distribution

Le fichier de configuration principal de Xorg est /etc/X11/xorg.conf, complété ou remplacé par les fichiers dans /etc/X11/xorg.conf.d. Il est rare d’avoir...

Le gestionnaire d’affichage (Display Manager)

Le Display Manager, ou gestionnaire d’affichage, est un élément de X Window qui se charge de la connexion des utilisateurs, locaux ou distants, de leur authentification, puis qui charge leur environnement de travail en leur ouvrant une session. Il gère un ensemble d’affichages X, qui peuvent être locaux ou distants.

Pour les connexions distantes, le Display Manager s’appuie sur le protocole standard XDMCP (X Display Manager Control Protocol).

Le Display Manager est l’équivalent graphique des services proposés par init, getty et login : il demande des identifiants et mots de passe, authentifie les personnes et ouvre une session.

Le gestionnaire par défaut se nomme XDM (X Display Manager). Il est léger et fonctionne avec tous les serveurs X.

Une session X est gérée par un gestionnaire de session (session manager), généralement le gestionnaire de fenêtre ou un terminal graphique. Quand la session se termine, la boîte de dialogue de connexion de XDM est réaffichée.

Il est possible d’ouvrir plusieurs sessions X depuis un seul Display Manager, y compris sur une même machine.

Linux dispose de plusieurs Display Manager mais trois sont principalement utilisés :

  • XDM : version de base.

  • GDM : version proposée par GNOME.

  • KDM : version proposée par KDE.

Les versions GDM et KDM sont évoluées : elles proposent la même chose que XDM avec des fonctionnalités supplémentaires :

  • Liste des utilisateurs.

  • Icones (avatars) associées.

  • Choix d’une session graphique particulière (GNOME, fvwm, KDE, etc.).

  • Possibilité de connexion automatique.

  • Thèmes graphiques.

  • Liste des serveurs X distants (XDMCP).

  • Passage d’un utilisateur à un autre.

  • etc.

1. XDM

Bien que XDM ne soit plus beaucoup utilisé, il est intéressant de comprendre son fonctionnement car les autres gestionnaires d’affichage reprennent sa configuration de base. La configuration de XDM se situe dans /etc/X11/xdm. Le premier fichier chargé est xdm-config. Toutes ses lignes suivent la syntaxe :

DisplayManager.Ressource: valeur 

Chaque ligne représente une ressource de XDM.

Exemple

Les lignes en gras montrent quelques autres scripts de configurations...

Gestionnaire de fenêtres et l’environnement personnel

1. Via le gestionnaire d’affichage

L’utilisateur détermine généralement le type d’environnement graphique chargé par la session X depuis GDM ou KDM et le menu associé. Ceux-ci reprennent la session précédente comme session par défaut grâce à la présence du fichier .dmrc dans le répertoire de connexion de l’utilisateur.

Exemple

cat $HOME/.dmrc 
[Desktop] 
Session=ubuntu 

Sur les versions plus récentes, l’information se trouve dans /var/lib/ServiceAccounts/users/$USER. Le fichier porte le nom de l’utilisateur.

Exemple

# cat /var/lib/ServiceAccounts/users/pba 
[User] 
Language= 
Session= 
XSession=icewm-session 
Icon=/home/pba/.face 
SystemAccount=false 

Les fichiers de description des sessions sont placés dans /usr/share/xsessions.

Exemple

$ ls -l /usr/share/xsessions/ 
total 12 
-rw-r--r-- 1 root root  207 oct.   4 13:16 gnome.desktop 
-rw-r--r-- 1 root root 2274 sept. 21 03:30 plasma.desktop 
-rw-r--r-- 1 root root  238 oct.   4 13:16 ubuntu.desktop 

Chaque fichier desktop représente une session possible. Les descriptions et les commandes de lancement sont présentes dans chacun des fichiers, et notamment via les lignes Exec et Name :

Exemple

$ grep -E "Exec|Name=" /usr/share/xsessions/*.desktop 
/usr/share/xsessions/gnome.desktop:Name=GNOME 
/usr/share/xsessions/gnome.desktop:Exec=gnome-session --session=gnome 
/usr/share/xsessions/gnome.desktop:TryExec=gnome-shell 
/usr/share/xsessions/plasma.desktop:Exec=/usr/bin/startkde 
/usr/share/xsessions/plasma.desktop:TryExec=/usr/bin/startkde 
/usr/share/xsessions/plasma.desktop:Name=Plasma 
/usr/share/xsessions/ubuntu.desktop:Name=Ubuntu 
/usr/share/xsessions/ubuntu.desktop:Exec=/usr/lib/gnome-session/
run-systemd-session ubuntu-session.target 
/usr/share/xsessions/ubuntu.desktop:TryExec=unity...

Bureau distant

1. RDP

RDP (Remote Desktop Protocol) est un protocole d’accès à un bureau à distance, développé par Microsoft, pour des systèmes Windows. Des clients et même des serveurs sont disponibles pour tous les systèmes d’exploitation, notamment sous Linux. Il est possible de sécuriser le protocole à l’aide de certificats.

Le serveur s’appelle xrdp. Il est disponible pour la plupart des distributions via le paquet logiciel du même nom:

Exemple

Installation du paquet logiciel :

Distribution de type Red Hat (du dépôt EPEL) :

# yum -y install xrdp 

Distribution de type Debian :

# apt-get install xrdp # Ubuntu ou Debian  

Démarrage et activation automatique :

# systemctl start xrdp 
# systemctl enable xrdp 

Le serveur RDP écoute sur le port 3389 en TCP. Il faut donc autoriser les connexions entrantes sur ce port au niveau du firewall.

Exemple

Distribution de type Red Hat :

# firewall-cmd --permanent --zone=public --add-port=3389/tcp 
# firewall-cmd --reload 

Distribution de type Debian :

# ufw allow 3389/tcp 
# systemctl restart xrdp 

La connexion au serveur RDP s’effectue depuis un logiciel client, sous Windows, MacOS ou Linux.

Pour Linux on peut utiliser les logiciels remmina (qui gère aussi VNC ou Spice), tsclient, etc.

Exemple

Connexion sur un serveur RDP Debian 12, depuis...

Accessibilité

Certains utilisateurs souffrent de troubles entraînant des difficultés pour lire un écran, écrire sur un clavier ou utiliser une souris. Linux et ses outils proposent divers moyens pour les aider.

Il s’agit ici de survoler quelques moyens disponibles pour aider les personnes handicapées, notamment moteurs ou ayant des problèmes de vue.

1. Assistance au clavier et à la souris

Un simple réglage du clavier ou de la souris peut aider une personne ayant des problèmes moteurs. Le module AccessX de l’environnement graphique permet de nombreux réglages. Ceux-ci sont accessibles depuis les centres de configuration des environnements graphiques. Sous KDE par exemple, le module Accessibilité de la section Personnalisation de la configuration du système propose de modifier de nombreux réglages par défaut, dont le fonctionnement du clavier. Par exemple, dans l’onglet Filtres du clavier, cochez Utiliser les touches lentes. Si une personne veut effectuer une action, elle ne sera prise en compte qu’après le délai choisi (0,5 secondes par défaut, réglable). En dessous, Utiliser les touches non répétées attend le délai indiqué avant de répéter une touche en cas d’appui trop long.

images/09CE08V6.png

Les paramètres d’accessibilité de KDE4 Plasma 54

Dans...