When you have GNOME installed, it is usually set up to run at boot. Your distribution has a standard desktop at your disposal. You can choose any other desktop, which is great after you have learned the tricks. If you choose a tiling window manager, you will need to learn a few keyboard shortcuts. GNOME is tightly integrated with systemd. If you hate systemd for some reason, you have to find a patched version of GNOME. As usual, you can change things around. In this article you will learn what happens when GNOME starts. First, we need to show you the pieces that are required.

The pieces that starts GNOME

At boot of your system, you have set which target that needs to run by systemd. This post assumes systemd! Still assuming standard, GDM3 starts. This is a minimal gnome-shell started by systemd. You can check with the systemctl command.

$ systemctl status gdm.service

GDM acts as the login prompt. When you have logged in, the other components are started. Here is what they do;

  • Gnome-session; The first task for gnome-session is to make sure all components are available. This is defined in the .session file. The system searches for these file names in usr/share/applications You can, optionally choose a directory where you have auto start applications. The other option is to run it with the failsafe option. This removes all user applications, use this for troubleshooting.
  • Gnome-shell; The gnome-shell creates the desktop, containing the design components. It uses Mutter extensively.
  • Mutter; Mutter uses Clutter to act as the standard window manager for GNOME.
  • The applications; GNOME comes bundled with many applications, by default. You can look them through at https://help.gnome.org/users/.
  • Extensions; Extensions are JavaScript that change the behaviour of gnome-shell and may add a function up in the top bar.

How they interact

Which part starts which and what keeps everything running during operation?

The developers of GNOME are testing everything with systemd in mind. This means that it all starts with systemd. You can check the status of the service with the command.

$ systemctl status gdm3.service

This service is the one that starts it all. From here the system starts everything else, first it checks what is needed to start. When the process starts, it calls the gnome-session binary which looks for dependencies. It then prepares the session by looking through the many directories that control your start. When you use the ordinary setup, the next part to start is gnome-shell.

Gnome-shell controls your desktop, this is the part where you can add extensions. The shell also activates the top-bar, opens your applications and calls the graphics libraries to place stuff on your desktop.

When gnome-shell needs to handle the desktop, mutter takes over and makes it look good. It is the X11 window manager and on Wayland it acts as the compositor.

What is running during operation

Once GNOME has started, you will have many processes running. These processes keep your system running and are standby for your requests. They are listed below.

  • dbus-daemon; This keeps communications running between different applications that has implemented it. One example of this is notifications from hardware to your top bar.
  • gnome-keyring-daemon; This daemon keeps your passwords and login credentials if supported by the application.
  • gnome-settings-daemon; This daemon will always keep your choices of icons, fonts and other settings.
  • gnome-shell; The program that runs your desktop, it is this program that interprets any extensions, makes the bars and docks available.
  • pulseaudio; This is used for audio settings and for detecting any new hardware.

There are other processes that support special features, including the gvfs that handles the GNOME virtual file system. This is what makes it possible to reach SSH, DAV and all your online accounts.

Conclusion

GNOME is a powerful system, which makes it easy to achieve many things. Sometimes this comes at a higher cost than you want. To make sure you have full use of GNOME while allowing your system to keep up, you need to know about some settings. Knowing these, you can also make things look the way you want.

About the author

Mats Tage Axelsson

I am a freelance writer for Linux magazines. I enjoy finding out what is possible under Linux and how we can all chip in to improve it. I also cover renewable energy and the new way the grid operates. You can find more of my writing on my blog.