Linux
    Overview
    Process
    Sockets
    File
    File System Hierarchy
    System Calls
    Libraries
    Device
    systemd
    Service
    namespaces
    Memory
    Modules
    Signals
    System Monitoring
    Desktop Environment
    Users and Groups
    Logs
    Network
    Terminal
    GNU

Desktop Environment

Updated: 2021-12-15

Desktop Environment is not a must for Linux, e.g. Ubuntu Server edition ships without a desktop. Desktop is just another software running in Linux, and it can be swapped

GNOME vs KDE vs Others

The most popular Linux desktop environments: GNOME and KDE.

  • KDE: Based on the QT GUI widget toolkit. QT was not GPL compatible until version 3.0
  • GNOME: Based on GTK+ (Gimp ToolKit) GUI widget toolkit. GTK+ (GUI toolkit) was created to build GIMP in 1997. GNOME was founded partly because QT was not GPL compatible.
  • Others
    • Cinnamon
    • XFCE is lightweight, good for remote desk.

E.g. Ubuntu uses GNOME by default, but has several other flavors with different desktop environments: Kubuntu uses KDE, Xubuntu uses XFCE, etc.

X11 vs X.org vs XDG vs FreeDesktop.org

  • X11, a.k.a. X Window System, provides a basic framework for GUI. X protocol had been version 11 since 1987, thus X11.
  • X.org is a popular open source implementation of X11.
  • XDG stands for X Development Group, the old name of FreeDesktop.org.
  • FreeDesktop.org is part of X.org Foundation.

Wayland

  • Wayland is intended as a simpler replacement for X.
  • GNOME and KDE are expected to be ported to it.

dbus

dbus is a message bus that allows different processes and applications to communicate with each other

  • dbus-x11 is an older implementation of dbus that creates a new dbus-daemon for each graphical display that is opened (ie: when a user logs in). This dbus-daemon (and any of its services) dies whenever that graphical session ends.
  • dbus-user-session instead has a systemd user service, where the dbus-daemon is shared among all of a user's sessions (graphical, ssh, tty, etc). This dbus-daemon dies when the last of a user’s login sessions has ended. dbus-user-session has a hard dependency on systemd which only supports running one graphical session per user at a time.

Ubuntu Frame

A fullscreen shell based on Wayland, used in kiosk, IoT and digital signage solutions, including smart mirrors, health kiosks, industrial panels and more.

Ubuntu Frame supports a range of applications built with GTK3/4, Qt5/6, Flutter, Electron and SDL2, and it also has a solution for applications based on HTML5, Java.