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.
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.
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.