In the previous chapter, you had a brief introduction to the Linux operating system. It's always helpful to know the history of the technologies you're going to use.
In this chapter, we're going to talk about:
The heart of Linux - its kernel.
The concept of distributions; the result of a lot of community work to make Linux accessible and maintainable for all.
Let's get started!
Understand the Principle of a Kernel
What does that mean?
It's really very simple:
Monolithic
It means that all Linux code is executed inside only one large object within the computer's memory, called a kernel.
The kernel contains all functions provided by the operating system, such as memory, CPU, and disk management, etc.
Modular
It means that the code in the Linux kernel is organized in modules. These are blocks of code that are dependent on each other.
This organization provides a significant advantage: it allows modules to be added to or removed from a kernel while running without switching it off or restarting it.
As you now know, Linux is released under GPL - General Public License. It is the main open-source license and the most widely used in the world. Therefore, all of the operating system's code is freely accessible.
Downloading the Linux kernel is like downloading a compressed file in .zip format.
The extensions are different for Linux kernel sources, but the principle is the same. When this file, containing around 100MB of data, is unzipped, you end up with a directory containing more than 25 million lines of code! It seems like a huge amount, but this code plays an essential role in the functioning of your computer's processor, network cards, file systems, etc.
Do I need to download it?
No, but if you do, don't panic if the file looks unfamiliar. It will also be numbered, in the X.Y.Z format.
What's the X.Y.Z format? 😱
It's terminology for keeping track of the development of versions (and seeing as it's free, it's often updated!).
For example, the terminology in Linux-5.11.5 has a specific meaning:
X is the major number; it indicates what you could call a generation and marks where a particular version has made significant improvements.
Y is the minor number; it changes more quickly within a major branch and corresponds to all regular code updates within a generation.
Z denotes a revision, i.e., a bug fix or a security update.
Now you'll be able to quickly tell the difference between a certain version of the Linux kernel and the previous one and see if it's undergone a major/minor update or a revision to fix a bug.
But how am I going to use Linux if I don't download the kernel?
Good question. We aren't going to ask you to download the kernel in this course. But because it is the basis of the Linux system, developers have used it as a starting point to build what are called distributions. And the first thing you're going to do is download one of them!
Understand the Concept of Distributions
For the average human, it's not easy to understand what the Linux kernel actually does. That's why you install computer programs on the Linux kernel, which allow you to produce all sorts of things: documents, images, videos, code, etc.
These programs are created and shared with the community by developers who have teamed up for this purpose. Remember, Linux is a community system that is free and open to all!
Choose the Right Distribution for Your Needs
There are a lot of distros around these days!
Wow! How can I possibly choose between all of these distributions?
Don't worry! There are many distributions, but if you look closely, you'll see that most of them come from a few main older ones (Debian, Red Hat, and Slackware).
All you need to know is that these are all designed for a particular need. For example, some are designed with security in mind, others are best for multimedia, and others are server or network-oriented.
In this course, we'll focus on workstation distributions.
Why workstation distributions?
Because they're much more user-friendly:
They have a fun graphic environment (because they needed to compete with Windows and macOS, which were dominating the market).
They're much easier for a Windows user to understand.
Some of the main workstation distributions are:
Linux Mint - From the Debian family, known for its elegance.
Elementary OS - Also from the Debian family, aims to provide a similar user experience to macOS.
Fedora - From the Red Hat family, aims to keep up with the latest Linux technologies.
So, should I choose one of these three?
For this course, we suggest you opt for the most famous distribution: Ubuntu!
It's also from the Debian family.
Its designer, Mark Shuttleworth, wanted it to be accessible to everyone, with the goal of ending Windows’ dominance on the workstation market.
To download Ubuntu:
Go to https://ubuntu.com/#download.
Click on the latest version (it can be LTS or not, it doesn’t matter).
Get the ISO image file - it should be about 3GB and look similar to this: ubuntu-20.10-desktop-amd64.iso.
Store the file in a directory where you can easily find it. You’ll need it later on in the course.
Let’s Recap!
The Linux kernel is monolithic and modular.
Its versions are numbered, and its sources are available on the Linux Kernel Archives website.
A Linux distribution is composed of a kernel, packages, and tools to manage their dependencies.
The distributions are developed to fulfill a need for servers, workstations, and more.
Debian, Red Hat, and Slackware were the first three Linux distributions.
Ubuntu is a distribution derived from Debian.
Now that you’ve downloaded a Linux distribution, you’re ready to learn about Linux desktops and choose an option that meets your needs.