Zum Inhalt springen

Desktop

Diese Seite ist nur zum Lesen, ohne Lab. Sie erklärt, was passiert, wenn auf einem Linux ein grafischer Bildschirm erscheint, und warum auf den meisten Servern keiner erscheint.

Linux ist der Kernel. Die grafische Oberfläche ist ein Stapel austauschbarer Programme darüber. Darum sehen Ubuntu, Fedora und Linux Mint so unterschiedlich aus, obwohl darunter derselbe Kernel läuft, und darum kann ein Server den ganzen Stapel einfach weglassen.

flowchart BT
    K[Kernel<br/>Grafiktreiber, Eingabegeräte]
    DS[Display Server<br/>Wayland-Compositor oder Xorg]
    DM[Display Manager<br/>gdm3, sddm, lightdm]
    WM[Window Manager / Compositor<br/>Mutter, KWin, Xfwm]
    DE[Desktop Environment<br/>GNOME, KDE Plasma, Xfce]
    APP[Anwendungen<br/>Terminal, Browser, Editor]
    K --> DS --> DM --> WM --> DE --> APP

Von unten nach oben:

Schicht Aufgabe Beispiele
Display Server Zeichnet Pixel auf den Bildschirm und verteilt Maus- und Tastatureingaben an Fenster Wayland (Standard seit Ubuntu 22.04), Xorg (X11, der Klassiker seit den 80ern, als Rückfalloption weiterhin dabei)
Display Manager Das erste grafische Programm nach dem Boot: der Anmeldebildschirm. Startet nach dem Login die Sitzung gdm3 (GNOME), sddm (KDE), lightdm (leichtgewichtig)
Window Manager Rahmen, Titelleisten, Verschieben, Grösse ändern, Fokus. Unter Wayland ist er mit dem Display Server verschmolzen (Compositor) Mutter (GNOME), KWin (KDE), Xfwm (Xfce)
Desktop Environment Das sichtbare Ganze: Panel, Starter, Dateimanager, Einstellungen, Themes. Ein aufeinander abgestimmtes Paket aus Programmen GNOME (Ubuntu-Standard, aufgeräumt, eher wie macOS), KDE Plasma (viele Einstellungen, eher wie Windows), Xfce (sparsam, schnell, für alte Hardware oder VMs)

Du kannst die Komponenten mischen. Im Alltag wählst du eine Arbeitsumgebung, und die bringt ihren Display Manager und Window Manager mit.

Was auf deiner VM läuft, verrät eine Sitzung mit grafischer Oberfläche so:

Terminal-Fenster
echo "$XDG_SESSION_TYPE"
echo "$XDG_CURRENT_DESKTOP"
systemctl status display-manager

XDG_SESSION_TYPE ist wayland oder x11; auf einem Server ohne Grafik ist die Variable leer und tty steht im Terminal.

Ein Ubuntu Server hat nach der Installation keine einzige dieser Schichten. Dafür gibt es gute Gründe:

  • Ressourcen: GNOME belegt rund ein Gigabyte Arbeitsspeicher und ein paar Prozent CPU, nur um da zu sein. Auf einem Server gehört das den Diensten.
  • Angriffsfläche: Jedes installierte Paket ist potenziell angreifbar und muss aktualisiert werden. Was nicht da ist, braucht keine Pflege.
  • Fernzugriff: Server stehen im Rechenzentrum oder in der Cloud. Du arbeitest über SSH (Modul 10), und das Terminal ist über jede Leitung schnell. Eine grafische Sitzung über das Netz ist es nicht.
  • Automatisierung: Alles, was du im Terminal tippst, kannst du in ein Skript schreiben und auf hundert Servern ausführen. Mausklicks nicht.

Das Zielsystem steht in systemd: graphical.target startet den Display Manager, multi-user.target bleibt beim Text-Login.

Terminal-Fenster
systemctl get-default

Mit sudo systemctl set-default multi-user.target machst du aus einem Desktop-Ubuntu ein System, das in der Konsole startet; die grafische Sitzung lässt sich dann bei Bedarf mit sudo systemctl start gdm3 nachholen.

Wenn dir GNOME nicht liegt oder deine VM damit zu träge ist, kannst du eine zweite Arbeitsumgebung daneben installieren und beim Login wählen. Xfce ist die kleinste der grossen drei:

Terminal-Fenster
sudo apt install xfce4

Danach abmelden, auf dem Anmeldebildschirm den Benutzer wählen und über das Zahnrad unten rechts die Sitzung «Xfce Session» aussuchen. KDE Plasma gibt es als kubuntu-desktop, das sind über tausend Pakete und mehrere Gigabyte.

Selbstcheck · 4 Fragen

1. Welche Komponente zeigt den grafischen Anmeldebildschirm?
2. Was ist Wayland?
3. Welche Gründe sprechen gegen eine GUI auf einem Server? (mehrere Antworten möglich)
4. Was solltest du vor sudo apt install kubuntu-desktop tun?