Linux Distros vs Desktop Environments: Differences Explained!
As a beginner to the Linux world, as you are in the introduction phase to using a new distro, you will hear something like
This distro X uses this Y desktop environment.
It is easy to get into the trap of thinking that “each given distro is different when it comes to how its desktop looks”, which is not entirely true. Once you get introduced to more distros, you will see that many distros are similar looking and you will inevitably get into the confusion of “why these are different distro’s even though they look alike?“
That is a good question! This article is all about clearing that confusion between Linux distros and Linux Desktop environments.
I have written this article keeping beginners in mind, and I have explained all the core concepts that you need to know so that once you finish reading this article you should have all your confusion cleared regarding this question of “Linux distros vs Desktop Environments”
So let’s begin!
Factors that differentiate Linux Distributions
There are numerous Linux Distros and there are a large number of Desktop environments present in Linux. As you might already know, one of the main factors these distros differentiate themselves is by how their desktops look.
But you might have also noticed that some Linux distro’s look exactly the same even though they are 2 different distros with 2 different communities that develop them.
That’s because Linux is a very modular Operating System and “the desktop environment” is just another software that you can install in Linux.
Some of the factors that differentiate these distros include the following
- The goal of the distro
- Target use-case (e.g. Servers vs General users)
- Business model (e.g. Community driven vs Commercial distros)
- Usage of free software vs proprietary software
- The package manager used
- Ease of Use (beginners vs advanced users)
- Init system (sys init vs systemd)
- Stability (Rolling releases vs Standard releases)
- hardware architecture (x86, x64, ARM, etc.)
- Security (decides the level of anonymity)
- Resource constraints
- Aesthetics (how the desktop and related apps look like)
As you can see, aesthetics is just one of the factors that differentiate each distro. In aesthetics comes our “Desktop environments”.
I have written a separate article that describes how each Linux Distros differ from each other in the link below
Let’s focus on Desktop Environments for the rest of the article. Let’s start by trying to understand how a Desktop Environment fits into a Linux Distro.
Desktop Environment’s Part In A Linux Distribution
In olden days, all computers came in was with a terminal, where the user can make programs using built-in text editors like vi and nano, and compile them using bash commands and execute them. Even these days it is the trend among advanced users of Linux to use the terminal more than the graphical user interface.
But in order to bring Linux to everyday users, get beginners interested in Linux and compete with other Desktop operating systems like Mac OS and Windows, Linux developers made a Graphical user interface.
This Graphical user interface in Linux consists of 4 parts. Each part has its own duty and they are built on top of each other. The 4parts starting from bottom to top are as follows.
- X-server: Tells what to draw
- X-client: Draws it on the monitor
- Window manager: gives window decorations (the frame surrounding the window, along with maximizing, minimize and close buttons) and ability to change between apps (using Alt-Tab for example)
- Desktop environment: gives a desktop, app launcher, taskbar, status-bar, etc.
If the above list feels dry and technical don’t worry, the main takeaway point is that the Linux Graphical User Interface or GUI is built as layers with each layer doing a different duty in producing the final picture that we can see on the monitor’s screen.
As you can see, our topics of focus, the Desktop environment is the topmost part of the GUI stack on Linux.
Since its a separate layer, the code for it is smaller and hence it is easier to build replacements for it and this software design is one of the reasons we have several Desktop Environments in Linux!
The Desktop Environment is what the end-user sees and interacts with and hence it is considered to be an important part of any Operating System (which is also the most resource-consuming part of the GUI stack!).
Some users love the Mac OSX desktop environment so much that they refuse to switch to windows, and the same goes for some other users and Windows.
In Linux, there is more than one Desktop environment! As with many things in Linux, we have options and the ability to customize our system in any way we want. As such the Linux developers have developed a wide variety of Desktop Environments to suit a wide variety of needs! The fact that the GUI stack has 3 solid strong bottom layers (X- server, X-client, and Window manager) made it easier for the developers to do so!
Why so many Desktop Environments?
Each one of these Desktop environments was developed to achieve a specific goal. You may argue that Windows and Mac OS have just one each and they are widely accepted by users. But the fact is the users were never given the option in the first place!
Imagine Tesla makes a single model of car and expect you to buy those, of course, it would not have been a great success! Because the car industry is full of options, from sedans to hatchbacks to SUVs, having a “one size fit all” approach will never work there!
Linux is trying to bring the same trend to the computing arena. We all know some computing devices are for budget-conscious buyers, while some others are for work stations and some others are for entertainment and are mainly targeted as content consumption devices!
Let’s take a closer look at these different classes of devices and how different desktop environments are used in those scenarios.
Classes of Desktop Environments & Linux Distro Goals They Help FulFill
The numerous Desktop environment are 3 basic classes of Linux Desktop Environments. They include the following
- Lightweight desktop environments
- Desktop environments focussed on Workstations and productivity
- Desktop environments focussed on Aesthetics
Let’s look at each one in more detail and see the type of distro they are usually chosen for as default!
Lightweight Desktop Environments & Light Weight Distros
These are geared towards the older and less powerful hardware. Desktop environments have gotten more and more complex over time and as a result, older computers that used to run say Windows XP have become unusable since Microsoft ‘s support period for XP has ended and Microsoft has stopped giving security updates to XP.
Updating them to Windows 10 renders them unusable as they become too slow to do anything with. This is because the animations and graphics that come with these newer environments have started to be a significant impact on performance and they are too much to handle for older hardware.
Hence even though the hardware is working perfectly, these older devices cannot be used anymore because of the lack of secure up-to-date software!
This is where Linux and Lightweight desktop environments come in. They can make these devices usable once again, as they require an XP’ish level of processing power as fancy animations are usually gotten rid of leaving a very simple, responsive and modern-looking interface. Thus you don’t have to throw your perfectly running old PC!
Usually, these Lightweight Desktop Environments get bundled with other Lightweight software to give us what’s known as “Lightweight Linux Distros”!
Some examples of Lightweight Desktop Environments include
- LXDE (option in Lubuntu)
- LXQt (another option in Lubuntu)
- XFCE (default Desktop Environment of Xubuntu )
- MATE (default Desktop Environment of Ubuntu MATE)
I have given a default distro that these Window Managers within parentheses in the above list. As you can see they all belong to the Ubuntu family. But the fact is you can install these desktop environments in many more Distros as long there is some official support for it.
All you need to do is google “How to install <Desktop Environment Name> on <Distro Name>”
You can even port these to any of the Linux distros out there as long as you have some technical skills!
If you want you can even go one step further and just go with a simple window manager like i3 or OpenBox!
Workstations desktop environments & Content Producer Distros
These are desktop environments that keep productivity in mind and are designed for use in workstations exclusively. These usually come as defaults in “Content Producer Distros” which include distro’s focussed on writing, programming, or any other kind of work.
Here usually the goal is to keep things simple and organized so that you can get to the app you need in as few clicks as possible and making the process of moving around apps easier and intuitive so that the user can focus more on the task at hand.
Some examples of Desktop Environments that are more suited for workstations include the following
This is the default Desktop environment on Linux Mint, developed particularly for the Linux Mint distro a popular Ubuntu derived distro. It is based on the Gnome 3 shell, which we will see a little bit later in this article. It is made with desktops and design in mind and hence is considered one of the most appealing desktop environments for the Desktops.
The above image (source) shows the Cinnamon Desktop Environment.
KDE Plasma is developed by KDE.org. This is another Linux Desktop environment developed keeping Desktops in mind. This is considered to be the good replacement of the windows desktop as it follows the same design philosophy. It is the official desktop environment for OpenSUSE a famous original German distro popular in Europe. KDE is also officially supported and available in most of the popular Linux distros.
The above image (source) shows the KDE plasma desktop environment.
Awesome Window Manager
Strictly speaking, this is a window manager but it is very popular among programmers and power users. It is highly configurable, stable, very fast and responsive to use. This is also a lightweight option, but the reason I kept it in this class is because it is more geared towards developers and workstations than normal users. It is developed and maintained by awesomewm.org.
Qtile is developed and maintained by QTile.org, This is another Window manager famous among programmers developed using python. This is designed in such a way that you can do most of the tasks of moving around apps and interacting with them all using your keyboard and you can ditch the mouse entirely!
Aesthetics focussed desktop environments & Content Consumer Distros
These distros are made keeping content consumption in mind as such aesthetics are given more importance than productivity. These devices are also made in such a manner that it can be used with touch screens too, as such the icons are usually bigger as compared to the desktop environments we have seen thus far in this article.
This is developed by the GNOME foundation and GNOME 3 is the latest version at the time of writing this article. It focusses on simplicity and modern design. GNOME3 is the default desktop environment for Fedora and it is officially supported by most of the distros out there!
This is developed based on Gnome 3 by Solus is it is targetted for the home-computing market. It comes as default from it as part of the Solus distro. It can also be installed on many popular distributions like Arch Linux, Ubuntu, etc.
Unity is developed by Canonical with the aim of developing a desktop environment that can be used universally everywhere like mobile devices, laptops, and desktop PCs. Unity is the default desktop environment of Ubuntu Desktop.
Isn’t Ubuntu, Kubuntu, Xubuntu, Ubuntu MATE, etc, are distros which only differ in the desktop environment department?
Yes, they indeed are! These are considered more like different “flavours” of the same Ubuntu distro as their overall goals are the same, other than their looks!
To learn more about the differences between flavors and derivatives check out our article in the link below!
If you are interested in learning more about Linux, be sure to check out our step by step plan to master Linux here.
And with that, I will conclude this article!
I hope you guys enjoyed this article and learned something useful.
If you liked the post, feel free to share this post with your friends and colleagues!