Jump to content
Search

This wiki is under development. Features may be missing. Data loss is unlikely, but possible. Read the announcement.

Ubuntu Desktop components

From Ubuntu Wiki

Ubuntu Desktop has millions of users today. As a new user, you might be curious to know what Ubuntu Desktop is made of. This guide explains the Ubuntu desktop environment, the types of applications it runs, and how package managers work.

Desktop environment

The Ubuntu Desktop environment provides a Graphical User Interface (GUI) for interacting with Ubuntu. The GUI determines the visual appearance of the desktop and the user experience of interacting with its tools and applications. Ubuntu Desktop ships with the GNOME desktop environment by default. Other alternative desktop environments include:

  • KDE Plasma
  • XFCE
  • LXQt
  • MATE
  • Budgie

Ubuntu Desktop comes in different flavors, each with its own desktop environment. Flavours are unique and opinionated offerings of Ubuntu, with their own visual style and applications. For example, the Kubuntu flavor uses the KDE Plasma desktop environment by default, while Ubuntu Studio is specially designed for content creation.

A desktop environment consists of different independent components, including:

  • Windows manager: This manages a window that pops up when you open a terminal or any application at all.
  • User app: These are default applications in the desktop environment.
  • File manager: This is a UI environment for interacting with files.

Ubuntu Server is essentially Ubuntu Desktop without the desktop environment and some specialised applications installed for server management. Some of these applications include:

  • OpenSSH server
  • ping

However, you can install a GUI on Ubuntu Server, and this is possible if your hardware supports graphics components.

Applications

These are comprised of system and user applications.

  • System application: The system applications interact with the operating system. Examples are the App Center and GNOME Terminal.
  • User applications: They are used to perform day-to-day activities and have permissions to the operating system restricted. Examples are Firefox and Calculator.

Package manager

A package manager is used to manage your application lifecycle, including install, upgrade, update and remove. You can do this using GUI applications or with the command line.

  • The GUI: Ubuntu Desktop comes pre-installed with an application store called the App Center.

It provides a graphical interface that allows you to search for apps and install them.

  • Command line: Packages can be installed from the terminal using apt or snap commands:
    • apt (Advanced Package Tool): This is the default package manager on all Debian-based systems like Ubuntu.
    • snap: Another built-in package management tool on Ubuntu, which includes all dependencies in a contained environment called a "snap".

Display server

This ensures that GUI applications can communicate with graphics-related hardware and input devices, including the keyboard, mouse, and touchscreen.

The display server consists of a communication protocol and a display server:

  • Protocol: Enables communication between the GUI applications and the display server.

Examples are X11 and Wayland.

  • Display server: Implements the protocol.

Examples are X.Org and Weston.

Users of Ubuntu Desktop can currently choose between X11 and Wayland.

Services

These are system applications running in the background. They often automatically start when Ubuntu Desktop boots. You can manage them using the systemctl command-line tool. These applications manage your Wi-Fi, Bluetooth, File System, and other settings.

To list all your services, run:

systemctl list-units --all --type=service

Shell

A shell is a program that uses a non-graphical way to interact with the operating system. You can access it by launching a Terminal application.

For example, you can run the following:

  • pwd: Shows your working directory.
  • ls: Lists files in your current directory.

See The Linux command line for beginners for more information about Linux commands.

The terminal prompt ends with $ for non-root users and # for root users.

There are several types of shells available, including:

  • sh
  • bash
  • fish
  • zsh

Tasks can be automated using shell scripts. To do that, define your task in a shell script that ends with a .sh file extension. Then, make the script executable and run it. For example, you can write a script that greets you with hello and displays the time.

Kernel

This ensures that the Ubuntu operating system can communicate with the entire hardware. It's stored in a disk drive and loaded into RAM when Ubuntu Desktop boots.

You can run Ubuntu Desktop in a virtual machine, which means both your host (such as Windows or macOS) and the Ubuntu Desktop guest run separate kernels. Check the path to where the Ubuntu Desktop kernel binary is stored by running:

ls /boot/vmlinuz-$(uname -r)

Examples of processes involving the kernel include:

  • When a display server is launched, its protocol communicates with the kernel, which then directs the request to the GUI-related hardware (GPU, frame buffer, etc.).
  • Storage and CPU resources can be allocated to a launched application running outside the kernel.
  • An application can be loaded to run inside the kernel using Extended Berkeley Packet Filter (eBPF).