Begriffsübersicht

Auf dieser Seite versuche ich, die Begriffe auf einfache, für mich verständliche und nachvollziehbare Weise ein- und zuzuordnen.

Begriff
Erklärung
Compositing Manager

(Compositing) Window Manager

(X) Window Manager

Compositor

Window Server

Window(ing) System

Verwaltet verschiedene Bereiche des Displays separat. Jeder Anwendung wird i.d.R. eine rechteckige, in der Größe variable Fläche zugewiesen, um dort ihr GUI darzustellen. Jedes dieser Fenster bekommt dabei seinen eigenen (Puffer-) Speicher zugewiesen. Der Fenstermanager stellt aus diesen Daten das sichtbare Bild zusammen und schreibt dieses in den Display-Speicher.
Wenn bspw. ein neues Fenster geöffnet werden soll, wird diese Anfrage an den Fenstermanager weitergeleitet. Dieser entscheidet, wo dieses Fenster initial dargestellt wird. Außerdem sind die Fenstermanager i.d.R. für die Darstellung eines Rahmens und der Standard-Interaktionselemente eines Fensters verantwortlich (Re-parenting). Der Fenstermanager kontrolliert diese beiden Elemente, nicht das Programm, das darin angezeigt wird.
Der Fenstermanager interagiert i.d.R. nicht direkt mit der Video-Hardware, Mäusen oder Tastaturen. Dies übernimmt der Bildschirmserver.
Die am häufigsten eingesetzten Compositing Window Manager sind im Linuxbereich: Compiz, KWin, Xfwm, Enlightenment, Mutter, awesome, OpenBox, xcompmgr and picom;
(https://en.wikipedia.org/wiki/Compositing_window_manager)

Client

Jede laufende Anwendung, die ihre graphische Benutzeroberfläche in einem Fenster darstellt, ist ein Client des Display-Servers.

Display Manager

Ein Displaymanager bietet eine grafische Anmeldung (Eingabe von Benutzername und Passwort) bevor er eine graphische Benutzeroberfläche startet.
Beispiele sind:
– X Display Manager (Xdm)
– Light Display Manager (LightDM)
– Gnome Display Manager (GDM)
– KDE Display Manager (KDM)
– Simple Login Manager (SLiM)
– wdm (Window Maker)
– Entrance Display Manager (Enlightenment)

Display- / Window Server

Der Bildschirmserver ist die Schlüsselkomponente einer jeden grafischen Benutzeroberfläche, insbesondere dem fensterbasierten System.
Die wichtigste Aufgabe eines Bildschirmservers ist die Koordination der Ein- und Ausgaben zwischen seinen Clients und dem Rest des Betriebssystems sowie der Hardware.
Dies basiert auf Anzeigenprotokollen (Display Server Protocol), die auch netzwerkfähig sein können.
(https://en.wikipedia.org/wiki/Windowing_system)

Bsp.: KWin, Metacity

Display Server Protocol

Communication Protocol

X11, Wayland, Mir

evdev (event device)

Bei evdev handelt es sich um den (Open Source) Eingabe-Treiber (input driver) für viele Eingabegeräte wie Tastaturen, Mäuse, Joysticks, usw.

GNOME

GNU Object Model Environment (ausgesprochen: „guh-nome“)

Grafische Benutzeroberfläche mit vordefinierten (aber änderbaren) Programmen.

GUI-Toolkit

widget toolkit

widget library

UX library

Ein „Werkzeugkasten“, mit dem sich grafische Benutzeroberflächen (GUIs) zusammenbauen lassen. Hierfür werden „widgets“ (z.B. Buttons, Textfelder, Schieberegler, (Dropdown-) Menüs und alle anderen Elemente, die man für eine GUI benötigt, zur Verfügung gestellt, die entsprechend angepasst werden können.

Die hier relevanten, plattformübergreifenden GUI-Toolkits sind z.B. GTK+ (in Java z. B. via SWT) und Qt.

Windows und MacOS haben wiederum eigene GUI-Toolkits.

GTK
GTK+

Das GTK (Gimp Toolkit) wurde ursprünglich erschaffen, um dem Grafikprogramm Gimp eine graphische Oberfläche abseits von Motif zu geben.
Mittlerweile basieren Graphische Benutzeroberflächen (GUIs) wie Gnome, Xfce oder LXDE auf dem GUI-Toolkit.
Ab GTK3 wird standardmäßig auf das Wayland-Backend zurückgegriffen, die Nutzung von XWayland ist jedoch auch möglich.

KMS

KMS steht für Kernelbased Mode-Setting. Es handelt sich dabei um ein Subsystem des Linux-Kernels, der automatisch die Kontrolle über die Grafikkomponenten eines System übernimmt und die passende Auflösung einstellt. Dadurch muss sich der Xorg-Server nicht mehr darum kümmern, die richtige Auflösung zu finden. Für den User bedeutet das vor allem eins, nämlich ein schnelleres Umschalten zwischen Xorg und den virtuellen Terminals, ebenso wie zwischen mehreren grafischen Sitzungen. Außerdem wird so der Bootvorgang beschleunigt und vor allem flackerfrei. Auch kann man so schon beim Booten recht ansehnliche Bootsplashs anzeigen lassen.

KWin

ist ein Nachfolger von KWM. Es handelt sich um einen Fenster-Manager für das X-Window-System, der aber auch zu einem Wayland Compositor weiterentwickelt wurde.
Es handelt sich dabei um den Wayland Compositor der Desktopumgebung von KDE.
(https://en.wikipedia.org/wiki/KWin)

Metacity

der ehem. Standard-Fentermanager von GNOME.

Mirror
(Software Repository)

Ein Mirror ist ein Server, auf dem aktuelle Softwarepakete einer Distribution, organisiert in Repositories, gespeichert sind.
Diese sind unterteilt in offiziell und inoffiziell (z.B. Arch User Repository (AUR)).

Re-parenting

Jedes Fenster hat ein ihm übergeordnetes Fenster (parent window), in dem es angezeigt wird. Dabei handelt es sich entweder um das Root Window (das oberste Fenster) oder ein anderes. Die dem obersten Fenster (dem Desktop selbst) untergeordneten Fenster (children) sind „top-level“ Fenster.
Ein Reparenting Window Manager wird vom Display Server informiert, wenn ein neues Fenster dargestellt werden soll. Der Window Manager generiert dann einen Fensterrahmen (frame window) und in den meisten Fällen eine Titelleiste (title bar window). Das Frame Window wird dann zum neuen direkt übergeordneten Fenster (parent window) des Title Bar Window und des neuen Fensters.

Repository

Ein Speicherort (i.d.R. auf einem Server im Netz) von dem man Software installieren kann. Unterschiedliche Repositories einer Distribution sind oft in Kategorien wie „core“, „extra“ oder „community“ eingeteilt.

SHELL
(CLI / GUI)

Eine Shell ist ein Programm, das dem Benutzer oder einem anderen Programm die Services (Prozesse) des Betriebssystems zugänglich macht.
In der Regel geschieht das über eine Kommandozeilenanwendung (Command Line Interface (CLI)) oder über eine Graphische Benutzeroberfläche (Graphical User Interface (GUI)).

Wayland (Compositor)

Display Server, die das Wayland Display Protocol umsetzen, heißen Wayland Compositoren. Ein Wayland Compositor verwaltet nicht nur die Ein- und Ausgaben für die Clients, sondern übernimmt auch das Compositing. Es werden also Display Server und Window Manager zusamengefasst.
Wayland Compositoren sind z.B.: Weston, Mutter, KWin, Enlightenment oder Phoc.
Wayland-Clients schreiben mittels EGL unmittelbar in den Bildspeicher; der Compositor entscheidet über die Ausgabe.

xdg-mime

xdg-mime ist ein Kommandozeilentool für die Verwaltung von Dateitypen und das Hinzufügen von Beschreibungen für neue Dateitypen.
xdg steht für „Cross-Desktop Group“, wobei das „x“ als „cross“ („Kreuz“) zu lesen ist.

XWayland

XWayland ist ein als Wayland Client laufender X Server, der die Ausführung nativer X11 Client Anwendungen in einer Wayland Compositor Umgebung ermöglicht.

X Window System

X.Org

X11

oder einfach „X“

Stellt das grundlegende Basis-Framework für eine GUI Umgebung bereit: Auf dem Bildschirm zeichnen, Fenster verschieben sowie mit Maus und Tastatur interagieren. Das Aussehen wird jedoch von anderen Programmen übernommen, weshalb das Aussehen verschiedener X-basierter Umgebungen stark variiert.


GUI (Graphische Benutzeroberfläche)

Die Hauptkomponente eines jeden Systems, das auf Fenstern basiert, ist der Display Server / Window Server / Compositor.
Jede laufende Anwendung, die ihre GUI in einem Fenster präsentiert, ist ein Client des Display Servers.
Der Display Server ist also der Mediator zwischen den Anwendungen und dem Nutzer.
Der Kernel leitet die Eingaben von Geräten wie Maus, Tastatur oder Touchscreen an den Display Server weiter, welcher diese an die richtigen Clients verteilt.
Außerdem ist der Display Server für die Ausgaben auf dem Bildschirm verantwortlich.

Display-Server-Protokolle

Das Display Server Protokoll beschreibt hier das Schema, bzw. den Aufbau der Kommunikation in einem Fenstersystem.
Das soll hier in stark abstrahierter und vereinfachter Form veranschaulicht werden:

X Window System (X.Org, X11 oder einfach X)

Der X-Server und der Compositor verfügen über getrennte Speicherpuffer. Somit besitzt der X-Server weder die Information, welches Fenster aktualisiert werden soll, noch kann er allgemeine Bildschirmkoordinaten in auf die Fenster bezogene Koordinaten umwandeln.
Jedes Fenster bekommt seinen eigenen (Puffer-) Speicher zugewiesen. Der X-Server erstellt aus diesen Daten das sichtbare Bild jedes Fensters und schreibt diese Daten in den Speicherpuffer des Compositors, der die Fenster entsprechend darstellt und arrangiert.
Obwohl der X-Server die Verantwortung für die endgültige Darstellung des Bildschirms an den Compositing-Manager (Compositor) übergibt, kontrolliert er dennoch den Frontpuffer (Puffer, in den die Clients schreiben) und die Moduseinstellungen.
Er agiert als Mittelsmann und führt einen zusätzlichen Schritt zwischen Anwendungen (Clients) und dem Compositor, sowie zwischen Compositor und Hardware ein.
Der Client bekommt Nachricht über ein Event und aktualisiert dementsprechend die Benutzeroberfläche (UI).

  1. Eingabe vom User
  2. Der Display Server (X server) leitet die Eingabe an den Client weiter.
  3. Der Client teilt dem Display Server mit, was jetzt auf der graphischen Benutzeroberfläche angezeigt/verändert werden soll.
  4. Der Display Server leitet dies an den Compositor weiter, der das Fenster des Clients entsprechend (neu) zeichnet.
  5. Der Compositor teilt dem Display Server mit, wenn das Fenster gezeichnet wurde.
  6. Der Kernel bzw. das KMS-Subsystem (verantwortlich u.a. für die Bildschirmauflösung) wird über den aktuellen Zustand der Bildschirmanzeige informiert.

X.Org ist die freie Open Source Implementierung des Display Servers für das X Window System, die von der X.Org Foundation verwaltet wird.
Sie basiert auf einem Client/Server Modell und erlaubt somit, dass die Clients lokal, aber auch entfernt auf einer anderen Maschine laufen können.


Wayland

Im Wayland Protokoll (Design/Schema/Aufbau) fasst der Wayland Compositor Display Server und Compositor zusammen, was nicht nur die Anzahl der Arbeitsschritte verringert, sondern auch dafür sorgt, dass die Clients direkt mit dem Compositor kommunizieren können.
Die Kontrolle von KMS und evdev wird an den Compositor übertragen.
Wie bei X11 auch, bekommt der Client Nachricht über ein Event und aktualisiert dementsprechend die Benutzeroberfläche (UI).
Das Rendering übernimmt hier jedoch der Client (mittels einer Rendering-Bibliothek wie OpenGL). Er schreibt die Änderungen in einen gemeinsamen Videospeicher-Puffer (Video-Memory-Buffer) und schickt eine Anfrage an den Compositor, das aktualisierte Fenster darzustellen. Der Compositor holt sich die Daten dafür dann aus dem gemeinsamen Videospeicher-Puffer.

  1. Eingabe vom User
  2. Der Wayland Compositor leitet die Eingabe an den Client weiter.
  3. Der Client teilt dem Wayland Compositor mit, was jetzt auf der graphischen Benutzeroberfläche angezeigt/verändert werden soll. Der Wayland Compositor zeichnet das Fenster des Clients Entsprechend (neu).
  4. Der Kernel bzw. das KMS-Subsystem (verantwortlich u.a. für die Bildschirmauflösung) wird über den aktuellen Zustand der Bildschirmanzeige informiert.

WordPress Cookie Hinweis von Real Cookie Banner