Wie funktionieren die Komponenten einer GUI unter Linux?

Wie funktionieren die Komponenten einer GUI unter Linux?

Es gibt zumindest einige grundlegende Komponenten:

-server (to talk to drivers and listen for input)
-desktop environment (?)
-windows manager (manages apps boarders, size, position, etc) 
-other polishing apps (menus, clocks, icons)

Womit wird also die Position der Maus und andere interaktive Aktivitäten protokolliert?

was würde passieren, wenn einige dieser Komponenten fehlen würden? Nehmen wir an, ich würde Firefox ohne Windows-Manager oder Desktopumgebung ausführen. Würde er im Vollbildmodus ohne Maus laufen?

wie starte und stoppe ich eine GUI vollständig vom Terminal aus?

Danke

Antwort1

Der Mauszeiger wird vom Grafikserver verwaltet – Clients empfangen Eingabeereignisse, müssen den Zeiger aber nicht selbst zeichnen.

Dasselbe gilt für die Fenster – das allgemeine Konzept „mehrere Fenster“ ist Teil des X11-Kernprotokolls, sodass Sie Apps in X11 auch ohne Fenstermanager ausführen können, diese sind jedoch randlos und Sie können sie nicht verschieben oder ihre Größe ändern. Der standardmäßige „kein WM“-Fokusmodus ist „Fokus folgt Maus“.

(In Wayland ist der Fenstermanager derselbe Prozess wie der Grafikserver. Darüber hinaus werden in den meisten Wayland-Umgebungen (und sogar einigen X11-Umgebungen wie GNOME 3) Fensterdekorationen normalerweise von den Clients selbst gezeichnet, sodass die Grenzen irgendwie verschwimmen.)


"Desktop-Umgebung" ist keine Komponente. Es beschreibt eineSammlungvon Komponenten – eine DE beinhaltet unter anderem:

  • ein Fenstermanager und eine Shell-Benutzeroberfläche (z. B. Desktop, Bedienfelder und so) – dies kann ein einzelner Prozess wie in GNOME 3 oder e17 oder vollständig voneinander getrennt wie in Xfce sein;
  • vielleicht ein Einstellungsmanager (wie Gnome-Settings-Daemon) für verschiedene Aufgaben wie Energieeinstellungen oder Display-Hotplug;
  • und einen Sitzungsmanager, um tatsächlich alles zu starten – dies ist der „anfängliche“ Prozess, der von einem DM oder Startx gestartet wird, und dessen Beendigung zu einem harten Logout führt.

Darüber hinaus verfügen DEs auch über eine Reihe grundlegender Apps – Dateimanager, Terminal, Texteditor, Systemeinstellungen; Dinge, die Sie in Windows unter „Zubehör“ finden würden.


Es gibt zwei Möglichkeiten, den Grafikserver zu starten: über einen Display-Manager oder manuell.

Gängige Displaymanager sind GDM, LightDM, SDDM, KDM und Xdm. Ihre Hauptaufgabe besteht darin, automatisch zu erkennen, wann ein Grafikserver (also ein Display) gestartet werden kann, und normalerweise auch eine grafische Anmeldeaufforderung anzuzeigen. Der Displaymanager selbst ist ein Systemdienst, der über serviceoder verwaltet wird systemctl.

Der manuelle Ansatz besteht darin, auszuführen. startxDadurch werden Xorg und alle in der Datei aufgeführten Clients gestartet .xinitrc(das kann der Sitzungsmanager einer DE oder ein guter alter WM sein).

(Xorg kann vollständig manuell gestartet werden, bewirkt aber nichts Nützliches; da es den Bildschirm einnimmt, müssten Sie die ersten Clients von woanders starten.)

verwandte Informationen