• We did not send an email asking for donations - please read this post.

Linux+: Operating System Intro 05 – OS Interfaces


Jarret W. Buse

Linux+: Operating System Intro 05 – OS Interfaces

Looking at other Operating Systems, such as Windows, you know what the user interface looks like. When you see a Windows system, you can instinctively say it is Windows. Every Windows system has the same basic commands or applications such as notepad, calculator, sound recorder and others.

Linux has the same basic commands as well which were carried over from UNIX. Linux also has a shell. A shell is an interface between the user and the kernel. There are two types of shells:
  1. Command-line
  2. Graphical User Interface (GUI)
Command-line shells have no graphical figures and may use a mouse and it is strictly a text interface. The command-line shell relies strictly for the keyboard for user input. A command is typed, followed by necessary parameters for the kernel to perform the necessary function.

Each shell has been written for different abilities and the interface. The C Shell (csh) uses commands similar in nature to the C programming language. When you choose a shell, it is important to choose a shell which has commands based on a command language you know. Some shells have their own command language which is not similar to a programming language. With no basis in a specific language, there can be a larger learning curve to know all the commands and parameters required.

One popular command-line shells is the GNU Born Again Shell (bash) as shown in Figure 1.

OS Intro 05 - Figure 1.jpg


Graphical User Interfaces (GUIs) provide icons and such for use with the mouse to navigate through the shell. A GUI is the typical shell used by users for accessing the kernel and performing functions and starting processes.

NOTE: For more information about processes see OS Intro 04 - LINUX Kernel.

For GUI based systems, there is the X Window system which is a Display Server. X Windows is an open source platform dependent graphics protocol to supply a GUI. X Windows is maintained by x.org.

NOTE: The version of X Windows for Linux is XFree86. X Window, or XFree86, is sometimes called X11, X or X-Windows.

X Windows provide the interface for mouse and keyboard use, drawing windows and moving those windows.

X Windows is configurable and can allow various GUIs to be made and distributed for Linux. Some of the interfaces are as follows:
  • K Desktop Environment (KDE) (FIGURE 2)
  • GNU Network Object Model Environment (GNOME) (FIGURE 3)
  • Cinnamon (FIGURE 4)
  • Enlightenment (FIGURE 5)
  • Lightweight X11 Desktop Environment (LXDE) (FIGURE 6)

OS Intro 05 - Figure 2.jpg


OS Intro 05 - Figure 3.jpg


OS Intro 05 - Figure 4.jpg


OS Intro 05 - Figure 5.jpg


OS Intro 05 - Figure 6.jpg


Just as the command-line shells, the GUI shells each provide different functions. Many functions are similar, but each shell has its own additions.

NOTE: Be aware that other Display Servers exist. The MIR and Wayland are two very popular Display Servers.

Using a GUI interface adds another layer to the interaction between the User and kernel.

The interfacing of the shell and XFree86 are as follows:

  • User
  • Shell (KDE, GNOME, etc.)
  • Display Server (XFree86, MIR, Wayland, etc.)
  • Kernel
  • Hardware
The User interacts with the installed shell, such as GNOME. When an item is moved or clicked the action is transmitted to XFree86. XFree86 manages the display, and if needed, sends the action to the Kernel. For instance, if an application icon is clicked to start, the Shell will communicate this to XFree86 which interprets it to start the application. The request to start the program is sent to the Kernel where the application is read from the Hard Disk Drive (HDD). The program is read from the HDD and sent to the Central Processing Unit (CPU) where it is executed and loaded into Random Access Memory (RAM). The Kernel manages the process and its threads. Information is sent from the kernel to XFree86 that a new window is to be opened and what should be displayed in it. This information is sent back to the Shell where the window is created and filled in with necessary information allowing the user to interact with the opened application. As the user interacts with an application by entering information or clicking on objects within the window, information is transmitted back and forth from the User to the Hardware.


  • slide.jpg
    28.8 KB · Views: 113,318


Eric Z. Ma

Great article. Thanks!

For the desktop environments, I would add MATE and XFCE ;)


Great article. Thanks!

For the desktop environments, I would add MATE and XFCE ;)

There is also Ratpoison, Unity, Enlightenment, Deepin (which is very new), and many others. A whole article series can be made out of discussing the different interfaces and desktop environments.


It is hard to wade into Unix/Linux GUIs for the uninitiated. Good job. Nice intro.

There are layers to most desktops and that not all layers are necessary or always desired. A DE - Desktop Environment - is NOT required. They are helpful, but if the system GPU performance is limited, using a pure WM - Window Manager - is a good way to still have a GUI, but with much fewer resources required.

For many of the newest DEs, bloated is putting it kindly, but that is just an opinion.

Plus X/Windows has built-in networking and remote control. Launching a heavy application on a remote system and having the display, keyboard, and mouse controlled on the local machine is built-in. With key-based ssh authentication, this can all happen securely and seamlessly over a LAN. The network truly is the computer and have been for decades. These are not new capabilities for Unix systems running X/Windows.


I can see a few issues.

One minor one: "GNU Born Again Shell (bash)"

A bit of a typo error there. Born=Bourne

I also have to wonder at all the "XFree86" references? The sources for this article must be ancient... You're free to use it of course (last release was in 2008), but the article should refer to X.org server.

Also this articles seems to deal with and mix two definitions of "shell" which isn't helpful. Both definitions are valid, but need separation.

In UNIX terminology, a "shell" is the command line interpreter. It is certainly not a window manager (or by extension a desktop environment). This is the only useful definition for *NIX users.

To be honest I didn't read much beyond that. Most like to see factual articles, especially those based on experience, not obvious copypasta.
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Linux.org Hosting Donations
Consider making a donation

Staff online