Unterschied zwischen Xorg und Gnome / KDE / Xfce

17

Ich möchte mehr über UNIX-Systeme erfahren und habe eine ziemlich einfache Frage. Ich glaube, ich weiß, wofür X verwendet wird: Es gibt Anwendungen einen Standard, um ihre Benutzeroberflächen (unter anderem) zu präsentieren.

Aber warum wird dann Gnome / KDE benötigt und in welcher Beziehung stehen sie zu X? Ich dachte, dass sie X als eine Art Schnittstelle zwischen der Anwendung und der GUI verwenden, so dass die GUI anpassbar ist, während die Schnittstelle für alle Anwendungen gleich bleibt.

Ist das wahr oder ist Gnome / KDE unabhängig von X?

Liess Jemai
quelle

Antworten:

25

(Ich untersuche die Beziehung zwischen GNOME und X. Ich möchte einige meiner Erkenntnisse teilen. Ich werde sie so logisch wie möglich darstellen.)

1. Woraus besteht die GUI?

Unten finden Sie eine Darstellung der grundlegenden Komponenten einer GUI.

Geben Sie hier die Bildbeschreibung ein

Die Schlüsselkomponente ist der Anzeigeserver . Es stehen mehrere Anzeigeserver zur Verfügung. Sowie:

  • X11 (meistens für * nix)
  • Wayland (meistens für * nix)
  • Mir (meistens für * nix)
  • SurfaceFlinger (Dies ist für Google Android.)
  • Quartz Compositor (Dies ist, was Apple MacOS verwendet.)
  • Desktop Window Manager (Dies wird von Microsoft Windows verwendet.)

2. Was ist X?

X, X11 und X Window System sind Synonyme. Sie alle stehen für ein Fenstersystem . Windowing System ist eine Art grafische Benutzeroberfläche (GUI, wie oben erwähnt), die das WIMP-Paradigma (Fenster, Symbole, Menüs, Zeiger) für eine Benutzeroberfläche implementiert.

Hier finden Sie eine Liste der wichtigsten Fenstersysteme für Linux- und Windows-Systeme.

Die Hauptkomponente eines Fenstersystems wird normalerweise als Anzeigeserver bezeichnet (keine Überraschung, da das Fenstersystem eine Art GUI ist und der Anzeigeserver der Schlüsselbestandteil jeder GUI ist), obwohl auch andere Namen wie Fensterserver oder Compositor verwendet werden.

Jede Anwendung, die ihre GUI ausführt und präsentiert, ist ein Client des Anzeigeservers . Der Anzeigeserver und seine Clients kommunizieren miteinander über ein Kommunikationsprotokoll, das üblicherweise als Anzeigeserverprotokoll bezeichnet wird , wobei der Anzeigeserver der Vermittler zwischen den Clients und dem Benutzer ist. Der Anzeigeserver empfängt alle Eingaben vom Kernel, die der Kernel von allen angeschlossenen Eingabegeräten wie Tastatur, Zeigegeräten oder Touchscreen empfängt, und überträgt sie an den richtigen Client. Der Anzeigeserver ist auch für die Ausgabe der Clients an den Computermonitor verantwortlich. Ein Display-Server-Protokollkann netzwerkfähig oder sogar netzwerktransparent sein. (Sie sehen also, es geht im Wesentlichen nur um Datenfluss und Routing, visuelle Daten sind immer noch Daten.)

Und laut hier :

Ein X-Server ist ein Programm, das Anzeige- und Benutzereingabedienste für andere Programme bereitstellt . Im Vergleich dazu bietet ein Dateiserver anderen Programmen Zugriff auf Dateispeichergeräte. Dateiserver befinden sich normalerweise an einem Remotestandort, und Sie verwenden die Dienste eines Dateiservers von dem Computer aus, auf dem Sie sich befinden. Im Gegensatz dazu wird ein X-Server normalerweise auf dem Computer ausgeführt, auf dem Sie sich befinden . Anzeige- und Benutzereingabedienste können von Programmen angefordert werden, die auf Ihrem Computer ausgeführt werden, sowie von Programmen, die auf Remotecomputern ausgeführt werden.

X besteht also aus:

  • Server anzeigen
  • Serverprotokoll anzeigen
  • Einige Bibliotheken für die Entwicklung
  • Und andere Dinge

Geben Sie hier die Bildbeschreibung ein

Nach hier :

X bietet das grundlegende Framework für eine GUI-Umgebung: Zeichnen und Verschieben von Fenstern auf dem Anzeigegerät und Interaktion mit Maus und Tastatur. X schreibt die Benutzeroberfläche nicht vor - dies wird von einzelnen Programmen erledigt. Daher ist das visuelle Design von X-basierten Umgebungen sehr unterschiedlich. Unterschiedliche Programme können radikal unterschiedliche Schnittstellen aufweisen.

Mit anderen Worten, X gibt einem Programm nur die Möglichkeit, grundlegende Dinge wie das Zeichnen / Verschieben von Fenstern und die Interaktion mit Eingaben auszuführen . X erzwingt keine visuellen Stile. Was Sie gesagt haben " ... Es gibt Anwendungen einen Standard, um ihre Benutzeroberflächen zu präsentieren ... ", ist falsch.

3. Was ist GNOME / KDE?

GNOME und KDE sind beide Linux Desktop Environment . Eine Desktop-Umgebung ist ein Bündel von Programmen, die auf einem Betriebssystem ausgeführt werden und eine gemeinsame Benutzeroberfläche haben .

Aber genau wie oben erwähnt, bietet X11 als Anzeigeserver nur die grundlegenden Zeichenfunktionen über einige Bibliotheken wie Xlib oder XCB. Anwendungen, die X11 über solche Bibliotheken direkt verbinden, können radikal unterschiedliche visuelle Stile haben .

Wie erstelle ich eine gemeinsame GUI? Hier kommen die Widget-Toolkits . Wie GTK + und Qt . Sie sind in Wayland- und X11- Fenstersystemen beliebt .

GNOME benutze die GTK +.

KDE verwenden die Qt.

Und hier ist ein Vergleich der Desktop-Umgebungen von X Window System.

Zusammenfassen...

Ich zeichne eine grobe konzeptionelle Illustration. Die 3 Teile über dem Betriebssystem sind sehr anpassbar. Deshalb entsteht so viel Flexibilität (Verwirrung).

Geben Sie hier die Bildbeschreibung ein

ADD 1 - 1:26 PM 9/21/2018

Und hier sind einige Diskussionen über QT und GTK (vielleicht offtopic zu diesem Thread aber ...)

smwikipedia
quelle
"Die Tatsache, dass der Begriff" Server "auf die Software vor dem Benutzer angewendet wird, überrascht häufig Benutzer, die daran gewöhnt sind, dass ihre Programme Clients für Dienste auf Remotecomputern sind. Hier ist eine Remote-Datenbank nicht die Ressource für eine lokale App Die grafischen Anzeige- und Eingabegeräte des Benutzers werden zu Ressourcen, die vom lokalen X-Server sowohl lokalen als auch remote gehosteten X-Client-Programmen zur Verfügung gestellt werden, die die Grafiken und Eingabegeräte des Benutzers für die Kommunikation mit dem Benutzer freigeben müssen. " (siehe Wiki )
Yaobin
1
Falls jemand durch den Satz "Ein X-Server läuft normalerweise auf dem Computer, auf dem Sie sich befinden" verwirrt wird, lesen Sie bitte meinen Kommentar oben. Vielen Dank an @smwikipedia für die unglaublich tolle Antwort!
Yaobin
5

Xorg (und das frühere Xfree und das frühere X10 ) ist ein Server für ein Protokoll, das vollständiger als X Window System bezeichnet wird . Es ermöglicht Anwendungen, auf "dem Bildschirm" zu zeichnen. Gnome / KDE / Xfce und andere Fenstermanager / Desktop-Umgebungen sind spezielle Anwendungen, die in X ausgeführt werden und beispielsweise Rahmen und Symbole zeichnen und die Anwendungen selbst minimieren und maximieren.

Und da Gnome und KDE beide unter MS Windows (und Wayland in unterschiedlichem Maße) ausgeführt werden können (oder wurden), sind sie ja unabhängig von X.

Elliott Frisch
quelle