Now that you know the history of Linux, it is time to learn about Linux distributions. In this article, I will try to cover “What Linux Distribution is”, “What is it composed of”, “What are different Linux Distributions”, “How are they different”, and “Is there any specific Linux Distribution to start with”.
What is Linux Distribution
A Linux distribution (often abbreviated as distro) is simply defined as an operating system that has a collection of GNU core utilities and Applications on top of a Linux kernel. In addition, it may also contain a desktop environment / GUI, documentation, etc… Let’s learn some information about these components that make up Linux Distributions.
Linux Distribution = Operating System
After you install the Linux operating system, it may have a look, like shown in the picture below. This picture depicts the Linux desktop with numerous applications/software pre-installed.
At first, you may not be able to figure out what operating system or Linux distribution are you using out of many available. However, we can easily figure it out by either navigating through the option in Graphical User Interface or using Command Line Interface.
Linux Distribution Has GUI & CLI
Like Windows 10 and Apple macOS, Linux also comes with a nice Graphical User Interface (GUI) and Command Line Interface (CLI). The GUI is also known as “Linux Desktop Environment”. Later in this post, we will learn that there are a number of Linux distributions available to use. And all these different Linux distributions come with their desktop environments. Some examples of desktop environments are including but not limited to GNOME, KDE, MATE, XFCE…
The picture below depicts Debian Linux distribution with GNOME desktop environment running. It has a nice Graphical User Interface.
This picture shows MATE desktop environment running on my Debian Linux.
You may use any desktop environment you wish. Besides, you can install multiple desktop environments on the same Linux Distribution and switch between them. It is all your choice to choose and use among multiple desktop environments available.
Question: What is an X Server and how it relates to Desktop Environment?
Answer: X Server is the display server for the Linux system. It is the X Server that enables us to make use of Graphical User Interface. It provides the basic framework for a GUI environment. For example, drawing and moving windows on the display device and interacting with a mouse and keyboard.
Lots of applications in the desktop environment requires X Server. For example, firefox and chrome require a display server / X Server to run. In such scenarios, X Server provides display and I/O services to applications, so it is a server; applications use these services, thus they are clients.
We may also use CLI – “Command Line Interface” to work on Linux Distro. For example, we may use lsb_release -a command in the terminal to view the “Linux Standard Base” or simply release of the Linux distro.
Linux Terminal Command
From the output, I can say that I am using Debian Linux 10 (Buster). And the operating system is GNU/Linux. Furthermore, we may use screenfetch command to view the desktop environment being used.
Linux Terminal Command
[email protected]:~$ screenfetch _,met$$$$$gg. [email protected] ,g$$$$$$$$$$$$$$$P. OS: Debian 10 buster ,g$$P"" """Y$$.". Kernel: x86_64 Linux 4.19.0-9-amd64 ,$$P' `$$$. Uptime: 22h 17m ',$$P ,ggs. `$$b: Packages: 1479 `d$$' ,$P"' . $$$ Shell: bash 5.0.3 $$P d$' , $$P Resolution: 1920x1080 $$: $$. - ,d$$' DE: MATE 1.20.2 $$\; Y$b._ _,d$P' WM: Metacity (Marco) Y$$. `.`"Y$$$$P"' GTK Theme: 'BlueMenta' [GTK2/3] `$$b "-.__ Icon Theme: mate `Y$$ Font: Cantarell 11 `Y$$. CPU: Intel Core i7-8550U @ 4x 1.992GHz `$$b. GPU: svgadrmfb `Y$$b. RAM: 1430MiB / 7955MiB `"Y$b._ `"""" [email protected]:~$
Linux Applications & Packages
On a typical Linux distro, you may see some pre-installed software or applications. These applications are part of the Linux distribution you are using. However, when there is a need to install new applications/software, it is done through Linux Packages.
We use .exe file to install the application in Windows 10. We use .dmg file to install the application in macOS. Likewise, we use either .rmp or .deb to install application/software on a Linux distribution. In its simplest term, installing a package means installing software. The answer to the question as to which package to use (*.rpm or *.deb), will depend on whether you are using RPM-based Linux or Debian-based Linux. I have discussed it later in this article.
We already know that the kernel is the core component of any Linux distribution with full system control. It enables the interaction between hardware and software components / Applications. We may use uname -r command to figure out the release of the kernel that we are using. The output below shows that my Debian Linux has kernel 4.19.0 installed.
Linux Terminal Command
GNU Core Utilities
The core utilities are installed with all Linux distributions. I personally haven’t used any Linux Distribution without these utilities installed. These core utilities are basic tools to view/create/move/copy/remove files and directories, change file permissions and ownerships, etc…
For instance, ls is the command to view/list files in a directory. Lots of other basic commands are made available to us through Linux core utilities. We will explore most of these basic commands in our forthcoming articles.
Linux Terminal Command
Unlimited Linux Distributions
Have you ever googled something and got confused as to what links to open out of hundreds available? The same applies to a newbie who wants to learn Linux but does not know which Linux distribution to go for. It is because of the large number of Linux distributions available today. I am using the term “Unlimited Linux distributions” because there is simply no end to it. Since Linux is open source, anyone can take the source code and build one’s own custom Linux distribution. For instance, Linux From Scratch (LFS) is a project to teach people how to build a Linux system from scratch. Many have gone through this path and have developed their own customized Linux.
Community vs Enterprise Linux Distros
Of all the available Linux distributions, some of them are community-driven such as Debian, Slackware, and Arch Linux. Some are sponsored or commercially-backed distributions such as Fedora [Sponsored by Red Hat], openSUSE [Sponsored by SUSE], and Ubuntu [Sponsored by Canonical Ltd.]. Community-driven distros are supported and maintained by the open-source community.
There are Enterprise or commercial Linux distributions available for the commercial markets such as Red Hat Enterprise Linux (RHEL), Oracle Enterprise Linux (OEL), and Suse Linux Enterprise Server (SLES). These distros are normally available with a support subscription from the vendor. With support subscriptions, enterprises have access to the most updated versions of Linux Software, knowledge resources, security updates, and excellent support, advice, and guidance to deploy, configure, and maintain their system.
Some Popular Distros & Their Usages
Red Hat Enterprise Linux
Red Hat is a commercial Linux company that has developed its enterprise Linux targeted towards the Enterprise and commercial market. Red Hat engineers and architects put a lot of effort to develop this Linux, well suited for the enterprise. Red Hat is well known for its contributions to Linux Kernel and associated technologies in the open-source community as well. Since RHEL is free and open-source software, anyone can download the complete source code. However, enterprise customers purchase support subscription from Red Hat to run their systems more reliably and more securely.
Fedora is a community-based, free Linux distro sponsored by Fedora Project and Red Hat (now subsidiary of IBM). Fedora acts as a testbed for Red Hat Enterprise Linux (RHEL). All new open-source software is developed and tested in Fedora Linux before porting them over RHEL. Due to this reason, the fedora is not popular in business-critical environments. Fedora can be obtained from its official website.
CentOS is a free community version of RHEL for small businesses. It has the same set of tools and software as RHEL. Unlike Fedora, CentOS is a reliable operating system as it benefits from changes introduced in Red Hat Enterprise Linux (RHEL). Small businesses do not have to pay any license cost or support subscription and they still get a stable operating system with all stable features
Update: on December 8th 2020, RedHat made an announcement that they would shift their focus from CentOS Linux to CentOS stream. CentOS Linux 8 will end at the end of 2021 and CentOS Stream continues after that date, serving as the upstream (development) branch of Red Hat Enterprise Linux.
I personally do not like this initiative was taken by RedHat because
CentOS Linux was Downstream of RHEL whereas now CentOS Stream is Upstream of RHEL
Upstream –> RHEL –> Downstream
Fedora –> Red Hat Enterprise Linux (RHEL) –> CentOS
Fedora was upstream of RHEL meaning that Fedora used to be the direct testbed for RHEL. All stable features would be available in RHEL. This means CentOS users will enjoy all the benefits from RHEL for free. CentOS was free and completely reliable Linux distribution based on the stable branch of RHEL. All businesses could get a free and stable version of Red Hat Enterprise Linux (RHEL) in form of CentOS Linux without paying any licensing cost.
However, with the CentOS stream, things have really gone in another direction.
Fedora –> CentOS Stream –> RHEL
Now, this is clearly undermining the actual benefits that people used to take from CentOS Linux. In simplest terms, CentOS stream now will serve as upstream of RHEL and it will be a “testing” branch for Red Hat Enterprise Linux (RHEL). Which means CentOS can become an operating system for personal Laptops/desktops or testing environment, but it cannot serve as a free, stable, and enterprise-ready operating system.
My Personal Opinion: I personally think, this was not the right move by RedHat. A large community of developers and businesses are not happy and the internet is full of comments against this move. I believe, after this change, the open-source community will see a huge user migration from CentOS to Oracle Linux or Debian Stable or Ubuntu LTS.
Above all, this change has already given birth to The Rocky Linux Project which is a community-driven, enterprise-ready OS. Like CentOS Linux, Rocky Linux is also forked from Red Hat Enterprise Linux.
This Linux is compiled from Red Hat Enterprise Linux source code. This Linux is best used for oracle databases/applications. This is free to download, use, and share. There is no license cost. However, enterprises buy support subscriptions for their business-critical infrastructure.
Debian is one of the stable and oldest Linux distributions in the Linux family. It comprises free and open-source software developed by the community-supported Debian project. The whole point of Debian from day one was “STABLE”. It is freely available to Download.
Ubuntu is a Linux distro based on Debian Linux. Ubuntu is funded by Canonical. Since its inception, Ubuntu has been very popular among newbies who want to learn Linux. It is easy to use and provides a huge collection of software that can be installed through the software center. Pre-installed tools in ubuntu Linux make it attractive for newcomers and make it a suitable distro for personal use. Ubuntu is officially released in three editions: Desktop, Server, and Core for IoT devices and robots.
Kali Linux is a Debian-derived Linux distribution that is specially designed for penetration testers and cybersecurity professionals. Almost all well-known tools, that are helpful in digital forensics, penetration testing, and various information security tasks, are pre-installed in Kali Linux. With more than 600 penetration testing tools included and freely available, this has been the favorite Linux distro for cybersecurity engineers and certified ethical hackers. It is developed, managed, and funded by Offensive Security.
Linux is not just a single operating system. There is a never-ending list of Linux distributions and you may use any Linux distro based on your choice/requirements.
Learning Linux is like learning “how to drive a car”. You start taking driving lessons and use a specific car. It could be any car from any brand/vendor. For instance, you learned driving on a Nissan car.
Question: Would you be able to drive Mercedes-Benz or BMW or Ford or Honda?
Answer: The answer is YES. Their design may differ and you may need to learn some new features. But you should be able to drive these cars.
RPM-based vs Debian-based Linux
In multiple technical variations of Linux distributions, package management is one criterion based on which we may categorize Linux distributions. Package management means how the software/package is installed, upgraded, removed, or managed.
Like in Windows, we use .exe or .msi for software installation. In the Linux world, I am going to use the term “RPM-based Linux” or Debian-based Linux. RPM-based Linux distributions are those that use .rpm packages. Debian-based Linux distributions are those that use.deb packages.
*.rpm is the package format and the package extension that is used for Red Hat distro and all other Linux distros that are normally Red Hat based. RPM was originally created for Red Hat Linux. However, RPM is now used in many Linux distributions including but not limited to Fedora, CentOS, OpenSUSE, and Oracle Linux. Therefore, if we want to manually download and install any package in RPM-based Linux distro, we need to download the .rpm file.
*.deb refers to package format as well as the extension of the software package. Packages with .deb extensions are used in Debian Linux and its derivates Linux distributions. If we want to manually download and install any package in Debian-based Linux, we need to download the .deb file.
Linux Distribution Examples
Red Hat Enterprise Linux, Fedora, CentOS, OpenSUSE, SUSE Enterprise Linux, Oracle Linux.
These distributions share many of the same directories and system administration techniques. There are other Linux distributions that may also use *.rpm packages.
Debian, Ubuntu, Kali Linux, Parrot OS, MX Linux, Raspberry Pi OS …
These distributions share many of the same directories and system administration techniques. There are other Linux distributions that may also use *.deb packages.
What Linux Distribution Should I Use?
When I started learning Linux, I used Red Hat Enterprise Linux. The only reason I used it because I was studying the Red Hat course. Then in one of my jobs, I had a chance to work on Oracle Enterprise Linux. I also used Kali Linux for my cybersecurity courses and penetration testing. And today, I am using Debian Linux in my job. As a personal choice, Debian is my favorite for laptops and servers.
All Linux distributions have the same core utilities. Therefore, you can start with any Linux distribution and just stick to it. After using it for some time, you can try other distributions as well. If you just want one name to start your Linux experience with, It is suggested to use either “Ubuntu Linux” or its forked distribution “Linux Mint”. Regardless, you can use almost all Linux distributions as a GUI client or use them as a Server.
The Bottom Line
Linux Distros – You may use it when
Red Hat Enterprise Linux
You want to run business-critical applications and you want to buy support subscriptions so that you may have access to security updates, and excellent support, advice, and guidance to deploy, configure, and maintain your system.
You don’t want to pay for a license but still want to use Red Hat Enterprise Linux and want reliable access to toolkits and applications.
Update: Red Hat has shifted its focus from CentOS Linux to CentOS stream. CentOS Linux 8 will end at the end of 2021 and CentOS Stream continues after that date. Therefore, in the future, CentOS Linux may not be a good choice for your critical servers. As far as CentOS Stream is concerned, it could be a good operating system for your personal laptops where you want to enjoy all the latest features.
Fedora acts as a testbed for RedHat. Therefore, you may find the latest software and features in the Fedora operating system. Before any feature is put into RHEL, it is first tested in Fedora. This may not be the best choice for business-critical server
You want to use a highly stable operating system that is free with no licensing required. Debian is perfect for servers where stability is more important. And this is why Debian might not include some of the latest software releases and technologies.
You are a windows user and want to use a similar GUI with pre-installed software. Ubuntu server comes with CLI and specially designed to act as a Server operating system. Ubuntu Core is specially designed for IoT devices.
You are maintaining Oracle databases. Oracle Database is developed on Oracle Linux and it is well suited Linux OS for Oracle cloud applications, Oracle cloud platform, and Oracle cloud infrastructure. It includes Unbreakable Enterprise Kernel (UEK), which is specifically optimized for the best performance of Oracle software.
It can also be used as a stable operating system, forked from RHEL, for your enterprise servers.
You want you to perform advanced Penetration Testing, Information security tasks, Security Auditing, Computer Forensics, and Reverse Engineering. This is the top-notch Linux operating system for Cybersecurity professionals, Certified Ethical Hackers with pre-installed tools including but not limited to Wireless Attack Tools, Reverse Engineering, Exploitation Tools, Forensics, Social Engineering Tools, Information Gathering Tools, Vulnerability Analysis Tools, Sniffing & Spoofing Tools, Password Cracking Tools.
It is completely free and is forked from Debian Linux.