In this first chapter, we will not install any program, nor will we type any command. We will only learn a bit about Linux.
Linux is an operating system, and so, it is only appropriate that we begin this chapter by first clarifying what an operating system is. We will then learn a bit of history about the origin of Linux. And finally, we will explore the different distributions that exist and which one is the most appropriate choice for our case.
What is an Operating System?
An Operating System, or OS, is software that acts as an interface between applications and machine hardware. Linux, Windows, macOS, and Android are all examples of Operating Systems.
An OS orchestrates the execution of processes and controls their access to hardware resources. It allocates to each process its own space in memory and ensures that all processes are operating within their safe and secure boundaries.
The Operating System comprises many components. Each one of them has complex features, and they all communicate with each other in an entangled web of links and interactions.
However, we do not have to go that deep. At a high level, an OS has only two main parts: The kernel, and the user space.
The kernel is the core of the OS. It sits between the hardware layer and the user space.
Processes that are running in the user space can access hardware resources (CPU, memory, network card, and so on) through the kernel.
The user space is where programs run. It includes software and utilities that operate on top of the kernel.
As you go up in layers, access to hardware gets more and more restricted.
Linux, The Genesis
Before we start exploring Linux, let’s go back a few decades to the past. Back to 1969. This is the year that marks the origin of the most influential operating system.
A team of researchers, led by Ken Thompson and Dennis Ritchie, developed Unix, an OS that will serve as the foundation for many subsequent operating systems.
Unix was really just a command shell. Back at that time, computers didn’t have the capability to operate graphical interfaces, and so, users interacted with machines using shells.
The GNU Project
Fast forward to the year 1984.
At that time, Unix was the base of many operating systems. There are of course few exceptions to this, the most well-known of which is the MS-DOS — which Microsoft had just released a couple of years before. But you’re not here to talk about Microsoft, so let’s just go ahead and move on.
The most common thing about these operating systems, whether Unix-based or not, was that they were all expensive. Richard Stallman, a software programmer, was so annoyed about this that he decided to act and do something about it.
He set out to create a new operating system that resembles Unix, but with the small difference of being entirely based on free software.
He named it The GNU Project. GNU is a recursive name that stands for GNU is Not Unix. It means that although the design of GNU resembles Unix, it doesn’t include any line of Unix code and is completely free from it.
Many software products were developed under the GNU Project, and they all had one thing in common: End-users are free to use, share, and modify them as they wish.
Meanwhile, Linus Torvalds, who was at that time a student at the University of Helsinki, was working on a project for a Kernel. He called it Linux, and he released it under a General Public License (GPL).
At that time, the GNU Project was ongoing and many software products had already been created. However, there was still a lot of work to be done on the Kernel part.
Linux was the missing piece that GNU needed to complete its OS. The timing of its release couldn’t be any more perfect. Once the Linux Kernel was released, it was combined with GNU products to form what is now known as GNU/Linux.
When you hear people talk about Linux, they generally mean GNU/Linux. Linux represents only the Kernel part, and so it cannot do much on its own. GNU and Linux are both complementary and need each other to operate.
Pick Your Distro
As we’ve seen in the previous section, anyone can use, share, and modify GNU/Linux. This has resulted in many versions that branched out from the original OS. These versions are also called distributions.
Features and characteristics differ from one distribution to another. Choosing the right one for you depends on how and for what purpose you intend to use it.
Debian is one of the oldest GNU/Linux distributions. It has been around since 1993, and its first stable version was released in 1996.
Thousands of volunteers from all around the world contribute to the development of Debian in their spare time.
The product of this large-scale collaboration is one of the most influential Linux distributions. It has since then become the inspiration for many other distributions.
Although many distributions branched out from it, Debian is still very widely used today. A large number of users prefer it for its stability and the rich library of software packages it provides.
Ubuntu is one of the most popular derivatives of Debian. It is maintained by Canonical, and it has gained popularity thanks to its ease of use. It is a good distribution for beginners who are shifting from Windows or mac and are trying to use Linux for the first time.
Ubuntu provides features and utilities that simplify everyday tasks and a Graphical User Interface(GUI) that is as easy to use as Windows. Therefore, it is less intimidating for the inexperienced user.
However, if you decide to go beyond the user-friendly environment and dare to explore the depths of the command-line and the darkest corners of Ubuntu, then you would be surprised by how powerful it is and how much you can do with it.
Personally, this was my first distribution, and if it hadn’t been for Ubuntu, I probably wouldn’t have dared to explore Linux.
But that was a while back. Today, there are other options that are as easy to use as Ubuntu.
Linux Mint is one of the most popular Linux distributions in use today. It is based on Ubuntu and, by transitivity, is also based on Debian.
There are many similarities between Linux Mint and Ubuntu, and the choice for beginners is not easy. Each distro has its die-hard fans, and opinions regarding the two may vary.
For this tutorial, I will be using Linux Mint, so I invite you to do the same. But you can still follow along if you really have to use Ubuntu.
You do not have to download or install anything now. I will be walking you through all that in the next chapter. For now, let’s just explore what else is there.
Kali is another Debian-based distribution. It is developed and maintained by Offensive Security and is primarily used by cyber-security experts and penetration testers.
Kali comes with a load of digital forensics and penetration testing tools including Nmap, Metasploit, Burp Suite, Aircrack-ng, and many more.
Red Hat Linux is an old distribution that was developed by Red Hat, inc (A company that is now a subsidiary of IBM).
This distribution has long been discontinued and is known today only as the parent of many current Linux distributions.
Red Hat Enterprise Linux
Red Hat Enterprise Linux (RHEL) is a commercial product developed by Red Hat,inc.
As its name implies, RHEL is used primarily by enterprises. It is less user-friendly and does not focus on consumer use.
RHEL is a good choice if you want to deploy an open-source OS in a server environment.
Fedora is another Linux distribution based on Red Hat Linux.
It is a free, user-friendly and supported by both the community and Red Hat, inc.
Fedora is known for its incorporation of new technologies and rapid innovation. This is why it is the preferred distro for developers.
Red Hat is also known to use Fedora as a testing bed for its RHEL releases.
Arch Linux is a minimalist and lightweight Linux distribution. It provides the end-user the complete flexibility to customize the system as they wish. It is aimed at users who are more experienced with Linux and is not the right choice for beginners.
The distributions that I included here are only a small sample. It would be impossible for me to list all the distros that are out there. Other examples that you should at least know exist include Gentoo, Slackware, openSUSE, CentOS, and Parrot.
You’ve now completed your first chapter in this course. By now, Linux should no longer be a mystery to you.
If you are ready, you can move on to the next chapter to see how you can install the Linux Mint distribution on your machine.