Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau

Cet article traite du fonctionnement des graphiques Linux et des composants qui les composent. Il contient de nombreuses captures d'écran de diverses implémentations d'environnements de bureau. 

Si vous ne savez pas grand-chose sur KDE et GNOME, ou si vous le savez, mais que vous souhaitez savoir quelles sont les autres alternatives, cet article est pour vous. Il s'agit d'un aperçu, et bien qu'il ait de nombreux noms et peu de termes, le matériel sera également utile pour les débutants et ceux qui se tournent vers Linux.

Le sujet peut également intéresser les utilisateurs avancés lors de la configuration de l'accès à distance et lors de la mise en œuvre d'un client léger. Je rencontre souvent des Linuxoids assez expérimentés avec les déclarations "sur le serveur, il n'y a qu'une ligne de commande, et je ne prévois pas d'étudier les graphiques plus en détail, car tout cela est nécessaire pour les utilisateurs ordinaires". Mais même les connaisseurs de Linux sont surpris et heureux de découvrir l'option "-X" pour la commande ssh (et pour cela il est utile de comprendre le fonctionnement et les fonctions du serveur X).

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureauSource

Je donne des cours Linux depuis près de 15 ans à "Académie du réseau LANIT"Et je suis sûr que beaucoup de ces plus de cinq mille personnes que j'ai formées lisent et écrivent probablement des articles sur Habr. Les cours étant toujours très chargés (la durée moyenne des cours est de cinq jours), il faut aborder des sujets qui demandent au moins dix jours pour une pleine connaissance. Et toujours pendant le cours, en fonction du public (débutants réunis ou administrateurs aguerris), ainsi que des "questions du public", je fais un choix entre ce qu'il faut transmettre plus en détail et ce qui est plus superficiel afin d'y consacrer plus de temps aux utilitaires de ligne de commande et à leur application pratique. Il y a suffisamment de sujets de ce type qui doivent être sacrifiés un peu. Ce sont « Histoire de Linux », « Différences dans les distributions Linux », « À propos des licences : GPL, BSD, … », « À propos des environnements graphiques et de bureau » (le sujet de cet article), etc. Non pas qu'ils ne soient pas importants, mais généralement, il y a beaucoup plus de questions "ici et maintenant" pertinentes et seulement environ cinq jours ... Cependant, pour une compréhension générale des bases du système d'exploitation Linux, une compréhension de la diversité disponible (de sorte que même en utilisant une distribution Linux spécifique , ont encore une vision plus large de tout cet immense et vaste monde qu'on appelle "Linux") il est utile et nécessaire d'étudier ces sujets. 

Tout au long de l'article, pour chaque composant, j'indique des liens pour ceux qui veulent approfondir le sujet, par exemple, vers des articles de Wikipédia (tout en pointant vers une version plus complète/utile s'il y a des articles en anglais et en russe).

Pour les exemples de base et les captures d'écran, j'ai utilisé la distribution openSUSE. Il était possible d'utiliser n'importe quelle autre distribution développée par la communauté avec un grand nombre de packages dans le référentiel. Il est difficile, mais possible, de démontrer la variété des conceptions de bureau sur une distribution commerciale, car ils n'utilisent souvent qu'un ou deux des environnements de bureau les plus connus. Les développeurs limitent donc la tâche de publier un système d'exploitation stable et débogué. Sur le même système, j'ai installé tous les DM/DE/WM (une explication de ces termes ci-dessous), que j'ai trouvé dans le référentiel. 

Les captures d'écran avec des "cadres bleus" sont juste prises sur openSUSE. 

Des captures d'écran avec des "cadres blancs" ont été faites sur d'autres distributions, elles sont indiquées dans la capture d'écran. 

Des captures d'écran avec des "bords gris" ont été prises sur Internet, comme exemples de conceptions de bureau d'antan.

Alors, commençons.

Les principaux composants qui composent les graphiques

Je vais distinguer trois composants principaux et les énumérer dans l'ordre dans lequel ils sont lancés au démarrage du système : 

  1. DM (gestionnaire d'affichage) ;
  2. serveur d'affichage ;
  3. DE (environnement de bureau).

De plus, en tant que sous-éléments importants de l'environnement de bureau : 

  • Gestionnaire d'applications/lanceur/commutateur (bouton Démarrer) ; 
  • WM (gestionnaire de fenêtres) ;
  • divers logiciels fournis avec l'environnement de bureau.

Plus de détails sur chaque article.

DM (gestionnaire d'affichage)

La première application qui démarre au démarrage de "graphics" est DM (Display Manager), un gestionnaire d'affichage. Ses missions principales :

  • demander quels utilisateurs laisser entrer dans le système, demander des données d'authentification (mot de passe, empreinte digitale) ;
  • choisissez l'environnement de bureau à exécuter.

Actuellement, diverses distributions sont largement utilisées : 

  • SDDM (modifié KDM),
  • GDM,
  • LightDM,
  • XDM.
  • Fly-DM (utilisé dans AstraLinux) peut également être mentionné.

La liste des DM existants est tenue à jour dans Article wiki. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Il est à noter que les captures d'écran suivantes utilisent le même gestionnaire d'affichage LightDM, mais dans des distributions différentes (les noms des distributions sont entre parenthèses). Découvrez à quel point ce DM peut être différent grâce au travail des concepteurs de différentes distributions.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
L'essentiel dans cette diversité est de préciser qu'il existe une application qui se charge de lancer les graphiques et de permettre à l'utilisateur d'accéder à ces graphiques, et il existe différentes implémentations de cette application qui diffèrent par leur apparence et certaines fonctionnalités (choix du design environnements, choix des utilisateurs, version pour les utilisateurs mal voyants, possibilité d'accès à distance via le protocole XDMCP).

Serveur d'affichage

Display Server est une sorte de fondation graphique dont la tâche principale est de travailler avec une carte vidéo, un moniteur et divers périphériques d'entrée (clavier, souris, pavés tactiles). Autrement dit, une application (par exemple, un navigateur ou un éditeur de texte) qui est rendue dans un «graphique» n'a pas besoin de savoir comment travailler directement avec les périphériques, elle n'a pas besoin de connaître les pilotes. Tout est pris en charge par X Window.

Quand on parlait de Display Server, pendant de nombreuses années sous Linux et sous Unix, cela signifiait une application Système X Window ou dans le peuple X (X). 

Maintenant, de nombreuses distributions remplacent X par Wayland. 

Vous pouvez également lire :

Tout d'abord, exécutons X et quelques applications graphiques en eux.

Stage "exécuter X et les applications qu'il contient"

Je ferai tout à partir de l'utilisateur du webinaire nouvellement créé (il serait plus facile, mais pas plus sûr, de tout faire à partir de la racine).

  • Puisque H'am a besoin d'accéder aux appareils, je donne accès : J'ai déterminé la liste des appareils en regardant les erreurs lors du démarrage de X dans le journal (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*

  • Après cela, je commence les X :

% X -retro :77 vt8 & 

Options : * -retro - démarre avec un fond classique "gris", pas noir par défaut ; * :77 - J'ai défini (n'importe lequel dans une plage raisonnable est possible, seul :0 est très probablement déjà occupé par les graphiques déjà en cours d'exécution) numéro d'écran, un identifiant unique réel par lequel il sera possible de distinguer plusieurs X en cours d'exécution ; * vt8 - spécifie le terminal, ici /dev/tty8, sur lequel les X seront affichés). 

  • Lancement de l'application graphique :

Pour ce faire, nous définissons d'abord une variable par laquelle l'application comprendra lequel des X que j'ai en cours d'exécution pour envoyer ce qui doit être dessiné : 

% export DISPLAY=":77" 

Vous pouvez voir la liste des X en cours d'exécution comme ceci : 

ps -fwwC X

Une fois la variable définie, nous pouvons lancer des applications dans nos X - par exemple, je lance l'horloge :

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Les principales idées et conclusions de ce fragment :

  • Les X ont besoin d'accéder aux périphériques : terminal, carte vidéo, périphériques d'entrée,
  • Les X eux-mêmes n'affichent aucun élément d'interface - c'est un gris (si avec l'option "--retro") ou un canevas noir de certaines tailles (par exemple, 1920 × 1080 ou 1024 × 768) pour y exécuter des applications graphiques.
  • Le mouvement de la "croix" montre que les X suivent la position de la souris et transmettent cette information aux applications qui s'y exécutent.
  • En outre, les X capturent les frappes sur le clavier et transmettent ces informations aux applications.
  • La variable DISPLAY indique aux applications graphiques sur quel écran (chaque X est lancé avec un numéro d'écran unique au démarrage), et donc lequel de ceux qui s'exécutent sur ma machine, pour dessiner des X. (Il est également possible de définir cette variable sur une machine distante et d'envoyer la sortie aux X s'exécutant sur une autre machine du réseau.) Puisque les X ont été démarrés sans l'option -auth, il n'est pas nécessaire de traiter la variable XAUTHORITY ou le xhost commande.
  • Les applications graphiques (ou comme elles sont appelées par les clients X) sont dessinées en X - sans la possibilité de les déplacer / fermer / modifier "-g (Width)x(Height)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Avec un signe moins, respectivement, à partir de la droite et du bord inférieur.
  • Deux termes qui méritent d'être mentionnés sont le serveur X (comme X est appelé) et les clients X (comme toute application graphique qui s'exécute dans X est appelée). Il y a un peu de confusion dans la compréhension de cette terminologie, beaucoup la comprennent exactement le contraire. Dans le cas où je me connecte de la "machine cliente" (en terminologie d'accès à distance) au "serveur" (en terminologie d'accès à distance) afin d'afficher une application graphique du serveur sur mon moniteur, alors le serveur X démarre sur le machine où le moniteur (c'est-à-dire sur la "machine cliente", pas sur le "serveur"), et les clients X démarrent et s'exécutent sur le "serveur", bien qu'ils soient affichés sur le moniteur de la "machine cliente". 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau

Composants DE

Ensuite, nous analyserons les composants qui composent généralement le bureau.

Composants DE : bouton Démarrer et barre des tâches

Commençons par le soi-disant bouton "Démarrer". Il s'agit souvent d'une applet distincte utilisée dans la "barre des tâches". Il existe également généralement une applet pour basculer entre les applications en cours d'exécution.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Après avoir examiné différents environnements de bureau, je résumerais ces applications sous le nom général "Apps Manager (Launcher / Switcher)", c'est-à-dire un outil de gestion des applications (lancement et basculement entre celles en cours d'exécution), et indiquerais également les utilitaires qui sont un exemple d'application de ce type.

  • Il se présente sous la forme d'un bouton "Démarrer" classique (sur toute la longueur d'un des bords de l'écran) "Barre des tâches" :

    ○ panneau xfce4,
    ○ mate-panneau/gnome-panneau,
    ○ panneau vala,
    ○ teinte2.

  • Vous pouvez également mettre en surbrillance les "barres des tâches en forme de MacOS" séparément (pas sur toute la longueur du bord de l'écran), bien que de nombreuses barres des tâches puissent apparaître dans les deux. Ici, la principale différence est plutôt purement visuelle - la présence de "l'effet de l'augmentation des icônes au survol".

    ○ quai,
    ○ station d'accueil pour latte,
    ○ quai du caire,
    ○ planche.

  • Et/Ou un service qui lance des applications lorsque des raccourcis clavier sont pressés (dans de nombreux environnements de bureau, un composant similaire est nécessairement présent et vous permet de configurer vos propres raccourcis clavier) :

    ○ sxhkd.

  • Il existe également divers "lanceurs" en forme de menu (de l'anglais. Launch (run)):

    ○ dmenu-run,
    ○ rofi -show drun,
    ○ Albert,
    ○ grunge.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau

Composants DE : WM (Gestionnaire de fenêtres)

Lire la suite en russe

Lire la suite en anglais

WM (Window Manager) - une sorte d'application responsable de la gestion des fenêtres, ajoute la possibilité de :

  • déplacer les fenêtres sur le bureau (y compris la fenêtre standard en maintenant la touche Alt enfoncée pour n'importe quelle partie de la fenêtre, et pas seulement pour le titre) ;
  • redimensionner les fenêtres, par exemple en faisant glisser le "cadre de la fenêtre" ;
  • ajoute un «titre (titre)» et des boutons pour minimiser / maximiser / fermer l'application à l'interface de la fenêtre;
  • le concept dont l'application est "au centre".

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Je vais lister les plus connus (j'indique entre parenthèses quel DE est utilisé par défaut) :

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
J'énumérerai également "l'ancien WM avec des éléments DE". Ceux. en plus du gestionnaire de fenêtres, ils ont des éléments tels que le bouton Démarrer et la barre des tâches, qui sont plus inhérents à DE à part entière. Bien qu'ils soient "vieux", si IceWM et WindowMaker ont déjà publié leurs versions mises à jour en 2020. Il s'avère qu'il est plus correct non pas "vieux", mais "anciens":

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
En plus du "classique" ("gestionnaires de fenêtres de pile"), il convient de noter séparément WM en mosaïque, qui permet aux fenêtres d'être disposées en mosaïque sur tout l'écran, et pour certaines applications, un bureau séparé pour chaque application en cours d'exécution en plein écran. C'est un peu inhabituel pour les personnes qui ne les ont jamais utilisées auparavant, mais comme j'utilise moi-même une telle interface depuis assez longtemps, je peux dire que c'est assez pratique et qu'on s'habitue rapidement à une telle interface, après quoi les gestionnaires de fenêtres "classiques" ne semblent pas pratiques.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Il convient également de mentionner séparément le projet Compiz et un concept tel que le "Composite Window Manager", qui utilise les capacités d'accélération matérielle pour afficher la transparence, les ombres et divers effets tridimensionnels. Il y a environ 10 ans, il y avait un boom des effets 3D sur les ordinateurs de bureau Linux. Désormais, de nombreux gestionnaires de fenêtres intégrés au DE utilisent certaines des fonctionnalités de composition. Récemment apparu Feu de chemin - un produit avec une fonctionnalité Compiz similaire pour Wayland.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Une liste détaillée des différents gestionnaires de fenêtres est également disponible sur  article de comparaison.

Composants DE : le reste

Il convient également de noter les composants de bureau suivants (ici, j'utilise des termes établis en anglais pour décrire le type d'application - ce ne sont pas les noms des applications elles-mêmes):

  • Applets :
  • Logiciel (boîte à outils Widget) - souvent un certain "ensemble minimal" de logiciels est fourni avec l'environnement :

DE (environnement de bureau)

Lire la suite en anglais

À partir des composants énumérés ci-dessus, le soi-disant "environnement de bureau" est obtenu. Souvent, tous ses composants sont développés en utilisant les mêmes bibliothèques graphiques et en utilisant les mêmes principes de conception. Ainsi, au moins, le style général d'apparence des applications est conservé.

Ici, nous pouvons mettre en évidence les environnements de bureau suivants actuellement existants :

GNOME et KDE sont considérés comme les plus courants, et XFCE est sur leurs talons.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
La comparaison par différents paramètres sous forme de tableau peut être visualisée dans les Article Wikipédia.  

Variété DE

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Projet_Looking_Glass

Il existe même déjà des exemples intéressants de ce type dans l'histoire : en 2003-2007, une « conception de bureau 3D » a été réalisée pour Linux sous le nom de « Project Looking Glass » de Sun. J'ai moi-même utilisé ce bureau, ou plutôt "joué", car il était difficile à utiliser. Ce "skin 3D" a été écrit en Java à une époque où il n'y avait pas de cartes graphiques 3D. Par conséquent, tous les effets étaient recalculés par le processeur et l'ordinateur devait être très puissant, sinon tout fonctionnait lentement. Mais il s'est avéré magnifique. Les tuiles d'application 360D peuvent être tournées/développées. Il était possible de faire pivoter le cylindre du bureau avec du papier peint à partir d'un panorama à XNUMX degrés. Il y avait plusieurs belles applications qui leur étaient propres: par exemple, écouter de la musique sous la forme d'un "changeur de CD", etc. Vous pouvez regarder sur youtube vidéo à propos de ce projet, seule la qualité de ces vidéos sera très probablement médiocre, car à cette époque, il n'était pas possible de télécharger des vidéos de haute qualité.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Xfce

Bureau léger. Il y a un projet depuis longtemps, depuis 1996. Ces dernières années, assez populaire, par opposition aux plus lourds KDE et GNOME, sur de nombreuses distributions qui nécessitent une interface de bureau légère et "classique". Il possède de nombreux paramètres et un grand nombre de ses programmes : terminal (xfce4-terminal), gestionnaire de fichiers (thunar), visionneuse d'images (ristretto), éditeur de texte (tapis de souris).

 
Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Panthéon 

Utilisé dans la distribution du système d'exploitation élémentaire. Ici, nous pouvons dire qu'il existe des "bureaux" qui sont développés et utilisés dans une distribution distincte et qui ne sont pas beaucoup utilisés (sinon "pas du tout utilisés") dans d'autres distributions. Au moins, ils n'ont pas encore gagné en popularité et n'ont pas convaincu une grande partie de l'auditoire des avantages de leur approche. Pantheon vise à créer une interface de type macOS. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Option de panneau de quai :

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Lumières

Accent mis sur les effets graphiques et les widgets (depuis l'époque où les autres environnements de bureau n'avaient pas de widgets sur le bureau, comme le calendrier/l'horloge). Utilise ses propres bibliothèques. On retrouve un large éventail de ses "belles" applications : borne (Terminologie), lecteur vidéo (Rage), visionneuse d'images (Ephoto).

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Moksha

Il s'agit d'un fork d'Enlightenment17 qui est utilisé dans la distribution BodhiLinux. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
GNOME

Initialement une interface de bureau "classique", créée en opposition à KDE, qui était écrite sur la bibliothèque QT, alors distribuée sous une licence peu pratique pour les distributions commerciales. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
GNOME_Shell

À partir de la troisième version de GNOME, GNOME a commencé à être livré avec le shell GNOME, qui a un "look non classique", que tous les utilisateurs n'aiment pas (tout changement soudain dans les interfaces est difficile à accepter pour les utilisateurs). En conséquence - l'émergence de projets de fourche qui poursuivent le développement de ce bureau dans le style "classique": MATE et Cinnamon. Utilisé par défaut dans de nombreuses distributions commerciales. Il a un grand nombre de paramètres et ses applications. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
MATE 

Apparu sur la base de GNOME2 et continue de développer cet environnement. Il contient un grand nombre de réglages et de forks d'applications qui ont été utilisés dans GNOME2 (de nouveaux noms sont utilisés afin de ne pas confondre les forks avec leur nouvelle version pour GNOME3).

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
de cannelle

Un fork de GNOME Shell qui fournit aux utilisateurs une interface de style "classique" (comme c'était le cas dans GNOME2). 

Il dispose d'un grand nombre de paramètres et des mêmes applications que pour GNOME Shell.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Budgie

Un fork de style "classique" de GNOME qui s'est développé dans le cadre de la distribution Solus, mais qui se présente désormais également sous la forme d'un bureau autonome sur diverses autres distributions.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
KDE_Plasma (ou, comme on l'appelle souvent, juste KDE) 

Environnement de bureau développé par le projet KDE. 

Il dispose d'un grand nombre de paramètres disponibles pour un simple utilisateur à partir de l'interface graphique et de nombreuses applications graphiques développées au sein de ce bureau.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Trinité

En 2008, KDE a publié sa nouvelle implémentation de KDE Plasma (le moteur de bureau a été fortement réécrit). De plus, comme avec GNOME/MATE, tous les fans de KDE n'ont pas aimé. En conséquence, un fork du projet est apparu, poursuivant le développement de la version précédente, appelée TDE (Trinity Desktop Environment).

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Deepin_DE

L'un des environnements de bureau les plus récents écrits à l'aide de Qt (sur lequel KDE est écrit). Il a de nombreux paramètres et une interface plutôt belle (bien que ce soit un concept subjectif) et bien développée. Développé dans le cadre de la distribution Deepin Linux. Il existe également des packages pour d'autres distributions.

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
Voler 

Un exemple d'environnement de bureau écrit avec Qt. Développé dans le cadre de la distribution Astra Linux. 

Comment fonctionnent les graphiques sous Linux : un aperçu des différents environnements de bureau
LXQt

Environnement de bureau léger. Comme plusieurs exemples précédents, écrits avec Qt. En fait, c'est une continuation du projet LXDE et le résultat d'une fusion avec le projet Razor-qt.

Comme vous pouvez le constater, le bureau Linux peut être très différent et il existe une interface adaptée à tous les goûts : du très beau et avec des effets 3D au minimaliste, du "classique" à l'inhabituel, du système lourd au léger, des grands écrans aux tablettes/smartphones.

Eh bien, j'aimerais espérer que j'ai réussi à donner une idée de quels sont les principaux composants des graphiques et du bureau sous Linux OS.

Le matériel de cet article a été testé en juillet 2020 lors d'un webinaire. Il peut être visualisé ici.

C'est tout. J'espère que cela a été utile. Si vous avez des questions et des commentaires, écrivez. Je serai heureux de répondre. Eh bien, venez étudier Académie du réseau LANIT!

Source: habr.com

Ajouter un commentaire