Linux distributions: To provide you with a convenient and working operating system, the framework combines hundreds and thousands of programs and system components. At the same time, each distribution has its own sets of components, thanks to which distributions can either differ from each other or be very similar to each other.
The mentioned software is developed by different, often unrelated groups of developers, for example, the Linux kernel is created by Linus Torvalds and representatives of the Linux community; GNU utilities are written by the developers of the GNU project and the Free Software Foundation (FSF); the KDE desktop environment is developed by the community of the same name; the Firefox browser is developed by Mozilla; etc.
In this lesson, we will analyze the main components that make up any Linux distribution.
Components of the Linux distributions
The Linux kernel
The heart of any operating system is its core. In 1991, Linus Torvalds announced the first public release of the Linux kernel. Since then, it has evolved a lot, and today thousands of volunteers (companies and ordinary software developers) are working on its development and support. It is safe to say that the Linux kernel is found in almost every “smart” device that you, in one way or another, encounter in your life: from Android phones to passing cars.
The Linux kernel is responsible for bundling the device’s software and hardware, distributes system resources between different applications, starts I / O processes, and passes them to the central processor for execution. No operating system can run without a kernel.
Note: There are currently over 20 million lines of code in the Linux kernel.
GNU is a project started in the 1980s by Richard Stallman, founder of the Free Software Foundation (FSF). The goal of this project was to create a completely free operating system that could become an alternative to the UNIX operating system. The GNU developers created all the necessary tools and programs for this, but they could not write the kernel itself directly. That is why Linus Torvalds created the Linux kernel in 1991, and then used GNU software and utilities to get a working operating system.
The GNU project includes many different utilities: the bash command shell, the GNU Compiler Collection, the GRUB loader, the GTK+ framework, the gzip archiver, the Nano text editor, and other software.
One of the main projects under GNU is the GRUB loader:
GRUB is the first program that loads after you press the power button on your computer. GRUB loads the operating system kernel and other components necessary for the system’s operation. Almost 99% of Linux distributions use the GRUB boot loader. If you have multiple operating systems installed, it is GRUB that provides a menu that allows you to choose which system to boot (for example, Windows or Linux).
Note: There are other loaders, such as LILO and BURG, but they are not particularly popular.
Another important utility of the GNU project is the bash command shell:
Most Linux systems use the bash command shell by default, which provides a command-line interface that allows you to control your computer by entering appropriate commands in a terminal window. Command shells can also run scripts, which are a set of commands and operations executed in the order specified in the script body.
Daemons are utility programs running in the background (or) that are designed to monitor certain subsystems of the operating system and ensure its normal operation. For example, the printer daemon controls printing capabilities, the network daemon monitors and maintains network communications, and so on.
Note: Windows calls such processes "services", while UNIX-like systems call them"daemons".
The most well-known daemon is systemd, which manages all other operating system processes. This is the first process that runs after the Linux kernel is loaded. Its task is to manage other daemons and run them if necessary at boot time or at any other time. It monitors all services available in the operating system and can turn them on or off as needed.
Package Manager is a set of software that allows you to manage the process of installing, uninstalling, configuring, and updating various software components.
In Linux, the software is presented as packages. If you want to install an app, library, game, or something else, you don’t need to search for the installation file on the Internet. All you have to do is open the Package/Software Management Center, find and install the applications you need.
Pay attention to the format of the packages used. Red Hat and many other Linux distribution families use the rpm package format with the .rpm extension (similar to. exe on Windows). Debian Linux-based systems, in turn, use a package management system that works with packages in the .deb format.
Note: It is not allowed (with some exceptions) to install deb files in Linux distributions that use rpm packages. But you can try to convert the package from the .deb.rpm format using a utility called Alien, or search for the corresponding package in the official repositories of your system.
There are many different package managers on Linux, and they differ from distribution to distribution. For example, Ubuntu uses the apt package manager, while Fedora uses dnf, openSUSE uses zypper, and Arch Linux uses pacman.
If you want to install the Firefox browser on your system, for example, you should run the following command:
sudo apt install firefox
sudo dnf install firefox
sudo zypper install firefox
Arch Linux Users:
sudo pacman install firefox
As you can see, the commands are very similar, but at the same time, the package management systems they run under the hood are very different; the differences are in how they work, their speed, and security.
The display server (or” window interface”) is an important part of the operating system that is responsible for displaying the graphical user interface on the screen. Icons, windows, menus, and all graphical objects that you see on the screen are displayed by the display server. Without a display server, you will be doomed to sit behind a black command-line interface that is expanded to the full screen of your monitor.
There are many different display servers available. For UNIX-like systems and Linux distributions, the most well-known is X.Org A server that was released in 1987 (before the Linux kernel) and is still used today.
Note: Since X.Org Server has been around for over 30 years and is full of security issues. In response, some developers supported by companies like Red Hat and Intel have developed a new mapping protocol called Wayland.
A desktop environment is a type of graphical user interface based on the desktop metaphor that makes it easier to work with the operating system using a specific set of tools, namely: icons, windows, panels, menus, widgets, file and display managers, and much more. The most well-known desktop environments in Linux are GNOME and KDE.
Display managers are used to displaying the user’s welcome screen and start desktop sessions: they ask you for a username and password before allowing you to log in to the desktop environment. If you use GNOME, the default display manager is GDM. If you choose KDE, then the default display manager is KDM (or SDDM).
You can use any display manager you want. However, you can’t run more than one display manager at the same time.
Custom apps are common apps that you use every day, such as the Firefox browser, LibreOffice office suite, VLC media player, and so on. All of these applications may differ completely from distribution to distribution.
It is also worth noting that you can run any Linux program in any desktop environment, but programs designed for some desktop environments may not display correctly in other desktop environments or interfere with neighboring processes. For example, if you try to run the GNOME Files file manager (formerly Nautilus) in KDE, it will require you to install various GNOME libraries and probably run GNOME desktop environment processes in the background when you open it. However, you can still use the file manager.
Custom applications (like all other packages) are downloaded from their respective repositories.
Linux distributions perform the final step: they take all of the above software, combine it, and add their own necessary utilities to create a fully functional operating system.