Différence entre Xorg et Gnome / KDE / Xfce

21

Je veux en savoir plus sur les systèmes UNIX et je pense avoir une question assez simple. Je pense que je sais à quoi sert X: il donne un standard aux applications pour présenter leurs interfaces utilisateur (entre autres).

Mais pourquoi donc a-t-on besoin de Gnome / KDE et comment sont-ils liés à X? Je pensais qu'ils utilisaient X comme une sorte d'interface entre l'application et l'interface graphique, donc l'interface graphique est personnalisable tandis que l'interface reste la même dans toutes les applications.

Est-ce vrai ou Gnome / KDE est-il indépendant de X?

Liess Jemai
la source

Réponses:

29

(Je regarde la relation entre GNOME et X. Je voudrais partager certaines de mes compréhensions. Je vais le présenter de manière logique autant que possible.)

1. De quoi est composée l'interface graphique?

Vous trouverez ci-dessous une illustration des composants de base d'une interface graphique.

entrez la description de l'image ici

Le composant clé est le serveur d'affichage . Plusieurs serveurs d'affichage sont disponibles. Tel que:

  • X11 (principalement pour * nix)
  • Wayland (principalement pour * nix)
  • Mir (surtout pour * nix)
  • SurfaceFlinger (Ceci est pour Google Android.)
  • Quartz Compositor (C'est ce qu'utilise Apple MacOS.)
  • Desktop Window Manager (C'est ce que Microsoft Windows utilise.)

2. Qu'est-ce que X?

X, X11 et X Window System sont synonymes. Ils représentent tous un système de fenêtrage . Le système de fenêtrage est un type d'interface utilisateur graphique (GUI, comme je l'ai mentionné ci-dessus) qui implémente le paradigme WIMP (fenêtres, icônes, menus, pointeurs) pour une interface utilisateur.

Voici une liste des principaux systèmes de fenêtrage pour les systèmes Linux et Windows.

Le composant principal de tout système de fenêtrage est généralement appelé serveur d'affichage (pas de surprise car le système de fenêtrage est une sorte d'interface graphique et le serveur d'affichage est l'élément clé de toute interface graphique), bien que d'autres noms comme serveur de fenêtre ou compositeur soient également utilisés.

Toute application qui s'exécute et présente son interface graphique est un client du serveur d'affichage . Le serveur d'affichage et ses clients communiquent entre eux via un protocole de communication, qui est généralement appelé protocole de serveur d'affichage , le serveur d'affichage étant le médiateur entre les clients et l'utilisateur. Le serveur d'affichage reçoit toutes les entrées du noyau, que le noyau reçoit de tous les périphériques d'entrée connectés, tels que le clavier, les périphériques de pointage ou l'écran tactile, et les transmet au client approprié. Le serveur d'affichage est également responsable de la sortie des clients sur le moniteur de l'ordinateur. Un protocole de serveur d'affichagepeut être compatible réseau ou même transparent réseau. (pour que vous puissiez voir, il s'agit essentiellement de flux de données et de routage, les données visuelles sont toujours des données.)

Et selon ici :

Un serveur X est un programme qui fournit des services d' affichage et de saisie utilisateur à d'autres programmes. En comparaison, un serveur de fichiers fournit à d'autres programmes un accès aux périphériques de stockage de fichiers. Les serveurs de fichiers sont généralement situés dans un emplacement distant et vous utilisez les services d'un serveur de fichiers à partir de la machine sur laquelle vous vous trouvez. En revanche, un serveur X est généralement exécuté sur la machine sur laquelle vous vous trouvez ; les services d'affichage et de saisie utilisateur peuvent être demandés par des programmes exécutés sur votre machine, ainsi que par des programmes exécutés sur des machines distantes .

Donc X est composé de:

  • serveur d'affichage
  • afficher le protocole du serveur
  • quelques bibliothèques pour le développement
  • et d'autres choses

entrez la description de l'image ici

Selon ici :

X fournit le cadre de base d'un environnement GUI: dessiner et déplacer des fenêtres sur le périphérique d'affichage et interagir avec une souris et un clavier. X ne rend pas obligatoire l'interface utilisateur - cela est géré par des programmes individuels. En tant que tel, le style visuel des environnements basés sur X varie considérablement; différents programmes peuvent présenter des interfaces radicalement différentes.

En d'autres termes, X donne uniquement à un programme la possibilité de faire des choses de base comme dessiner / déplacer des fenêtres et entrer en interaction . X n'applique pas les styles visuels. Donc ce que vous avez dit " ... Cela donne une norme aux applications pour présenter leurs interfaces utilisateur ... " est incorrect.

3. Qu'est-ce que GNOME / KDE

GNOME et KDE sont tous deux Linux Desktop Environment . Un environnement de bureau est un ensemble de programmes exécutés au-dessus d'un système d'exploitation, qui partagent une interface graphique commune .

Mais comme je l'ai mentionné ci-dessus, X11, en tant que serveur d'affichage, ne fournit que la capacité de dessin de base via certaines bibliothèques comme Xlib ou XCB. Les applications qui interfacent directement X11 via de telles bibliothèques peuvent avoir des styles visuels radicalement différents .

Alors, comment créer une interface graphique commune? Voici les kits d'outils de widget . Tels que GTK + et Qt . Ils sont populaires dans les systèmes de fenêtrage Wayland et X11 .

GNOME utilise le GTK +.

KDE utilise le Qt.

Et voici une comparaison des environnements de bureau du système X Window.

Résumer...

Je dessine une illustration conceptuelle approximative. Les 3 parties au dessus de l'OS sont très personnalisables. C'est pourquoi tant de flexibilité (confusion) survient.

entrez la description de l'image ici

AJOUTER 1 - 1:26 PM 21/09/2018

Et voici quelques discussions sur QT et GTK (peut-être que ce sujet soit hors sujet ...)

smwikipedia
la source
"Le fait que le terme" serveur "soit appliqué au logiciel devant l'utilisateur surprend souvent les utilisateurs habitués à ce que leurs programmes soient des clients de services sur des ordinateurs distants. Ici, plutôt qu'une base de données distante étant la ressource d'une application locale , l'affichage graphique et les périphériques d'entrée de l'utilisateur deviennent des ressources mises à disposition par le serveur X local pour les programmes clients X locaux et hébergés à distance qui doivent partager les graphiques et les périphériques d'entrée de l'utilisateur pour communiquer avec l'utilisateur. " (voir wiki )
yaobin
1
Au cas où quelqu'un serait confus par la phrase "un serveur X est généralement en cours d'exécution sur la machine sur laquelle vous vous trouvez", veuillez consulter mon commentaire ci-dessus. Merci @smwikipedia d'avoir donné une réponse incroyablement impressionnante!
yaobin
5

Xorg (et le Xfree antérieur et le X10 antérieur ) est un serveur pour un protocole plus complètement appelé le système X Window ; il permet aux applications de dessiner sur "l'écran". Qui peut être distant avec X. Gnome / KDE / Xfce et d'autres gestionnaires de fenêtres / environnements de bureau sont des applications spéciales qui s'exécutent dans X qui dessinent des choses comme des bordures et des icônes et minimisent et maximisent ce que les applications elles-mêmes ne font pas.

Et, puisque Gnome et KDE peuvent tous les deux (ou l'ont fait) fonctionner sur MS Windows (et Wayland à des degrés divers), oui, ils sont (ou peuvent être) indépendants de X.

Elliott Frisch
la source