(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.
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
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).
ADD 1 - 1:26 PM 9/21/2018
Und hier sind einige Diskussionen über QT und GTK (vielleicht offtopic zu diesem Thread aber ...)