Linux 101 - User interfaces

Graphical User Interfaces

Most users never put in much thought into how they communicate with the numerous computational devices in their lives. On a desktop computer a user will navigate via windows and start menus with primarily a mouse, whereas on a smart-device the user uses a touch interface and in some cases voice commands. As all these interfaces work with graphical objects / windows on screen, they are referred to as Graphical User Interfaces (GUIs).

On desktop computers most users will use Microsoft Windows and a small percentage will use Mac-OS. In both these examples the user does not have a choice of GUI, the GUI is synonymous with the OS. On Linux Desktop, this works slightly different. The user can often choose which GUI or desktop manager they wish to install and use. Popular examples include GNOME, KDE, MATE and Cinnamon. The screen shots below demonstrate some Linux desktop managers:

Linux Mint 20.2 with the Cinnamon desktop manager

usr_interface_cinnamon

Garuda Linux: Harpy-Eagle with the KDE-Plasma desktop manager

usr_interface_kde

Rocky Linux 8 with the GNOME 3 desktop manager

usr_interface_gnome

Text-based User Interfaces

In the past, the primary way of interfacing with a computer was via text commands. I.e. Entering commands into a terminal using a keyboard and nothing else. As primitive as this sounds, it is still the go to method for primarily interfacing with a server, as most servers do not contain a GUI (They are usually headless, meaning they do not have a screen, keyboard or mouse).

However, note, that even for Linux distributions with the desktop managers, one may still access the terminal via terminal emulators provided by the desktop managers. For example, KDE, the terminal emulator is named Konsole and GNOME provides the GNOME Terminal. Even on Windows one may still access a DOS-like command-line terminal by running cmd.exe or using PowerShell. See an example of the GNOME Terminal below:

gnome_terminal

As most of the computers/nodes in an HPC environment are servers, the primary interface used in this environment is text or command-line based.