There are a few terms that may confuse Linux beginners. The first thing is its name, Linux vs GNU/Linux, the term Linux refers to the Linux kernel only. In reality many users refer to Linux as the operating system as a whole, the kernel plus libraries and tools. Also the term Linux is used to include all the programs that run on Linux, or that are available for this great operating system.
Furthermore, the description GNU/Linux needs understanding. Linux distributions with this name prefix are fleshed out with GNU implementations of the system tools and programs. One such example is Debian GNU/Linux. The GNU project goes back to the initiative of Richard M. Stallman and his dream to develop a free UNIX system. Based on his experiences at MIT and the collaboration with other colleagues he choose to use free software that was already available to rewrite the tools he needed. This included the TeX typesetting system as well as X11 window system. He published the rewritten tools under the GPL license whenever possible to make his work available freely to everyone who was interested in it.
A Linux distribution is a collection of software packages that fit together. A distribution is maintained by a team of software developers. Each member of the team focuses on a different package of the distribution. Together as a team they ensure that the single software packages are up-to-date and do not conflict with the other packages of the same release of the distribution.
As of 2019 for Debian GNU/Linux 10, the distribution includes over 13,370 new packages, for a total of over 57,703 packages. A repository is a directory of packages with a certain purpose. Debian GNU/Linux sorts its packages according to the development state. The official repository is named stable and reflects the current release of stable packages. The other repositories are named testing and unstable, and work in the same way but do not count as official packages.
Typically a Linux distribution comprises of packages for a Linux kernel, a boot loader, GNU tools and libraries, a graphical desktop environment with a windows environment, as well as additional software like a web browser, an email client, databases and documentation. The software is provided in two ways; as the source code and as the compiled binary packages. This allows you to understand how the software is designed, to study it and to adjust it according to your personal needs.
Depending on the focus of the Linux distribution, it also contains packages for a specific purpose like network or forensic tools, scientific software for educational purposes, and multimedia applications.
Originally designed for Intel-based systems, Linux runs on a variety of platforms today. Among others this includes the ARM architectures (named arm and arm64), Motorola/Freescale’s 68k architecture (m68k), Intel x86 (i386 and amd64), IBM s390 (s390), PowerPC (powerpc) and SPARC (sparc) as you can read below.
Right from the beginning Linux focused on server systems. It is in constant use as a web server, file server, mail and news server, internet gateway, wireless router and firewall. Used as a computing unit, it helped to render video sequences and entire films such as Titanic, Shrek and Toy Story.
Furthermore, Linux is in use in automotive products, astronautics, military, logistics and the engineering environment. Since 2006, Linux servers run all the world’s stock exchanges. It also runs almost all internet search engines.
Over the last decade Linux also conquered the desktop. Due to its high flexibility and stability, it works as a reliable setup for text processing, graphic design, desktop publishing, calculations in spreadsheets, communication (email, chat, audio, and video) as well as user interfaces for your phone and television.
According to Distrowatch, more than 600 different Linux distributions exist. Major distributions are Debian GNU/Linux, Ubuntu, Linux Mint, Red Hat Enterprise Linux (RHEL), Fedora, CentOS, openSUSE Linux, Arch Linux, Gentoo and Slackware. One of the major questions is: which Linux distribution to use? Based on our experience these are the recommendations:
- For beginners: Ubuntu, Xubuntu, openSUSE, Linux Mint, MX Linux
- For everyday users with experience: Debian GNU/Linux, Red Hat Enterprise Linux (RHEL), Fedora, CentOS, Arch Linux
- For advanced users: Gentoo, Slackware
For the examples in this book we use Debian GNU/Linux. Even though this distribution is recommended for advanced users it is still very beginner friendly, which we will show later in the guide. But the most important reason for this selection is its stability and the trust in this Linux distribution that was built up during the last 20 years of permanent use as a server and desktop system. Other Linux distributions fluctuate too much for comfort.
In general, choosing a Linux distribution can depend on several criteria as stated below:
- By its availability: free or commercial use
- By its purpose: desktop, server, Wi-Fi router/network appliance
- By the intended audience: end user, network engineer, system administrator, developer
- By the package format: .deb, .rpm, .tar.gz
- By the time updates are available: every Linux distribution follows its own update cycle
- By the support that is provided: support can be free (community-based) or with costs (based on a support contract)
When selecting a distribution, we recommend one that is stable, that is updated regularly and fits into the purpose you need the computer for. Below you will find a short description for each of the Linux distributions mentioned above.
Established in 1993, Debian GNU/Linux (Debian for short) is an entirely free and community-based operating system that follows the GNU principles. More than 1,000 developers continuously work on it based on their own free will. Behind Debian is no company and there are no business interests involved .
One design goal is to have a stable and reliable operating system for computers that are actively delivering services. It is targeted to users who know what they want and have experience. The Debian developers maintain and use their own software. The packages are made available in .deb format, and are divided into categories according to the following licenses:
- Main: free software
- Contrib: free software that depends on non-free software
- Non-free: packages that have a non-free license
Debian works excellent on both servers and desktop systems. A range of architectures are supported like ARM EABI (arm), IA-64 (Itanium), mips, MIPSel, powerpc, s390 (32 and 64 bit), as well as sparc, i386 (32 bit) and amd64 (64 bit). The code name of each release is based on the name of a character from the film Toy Story, such as Stretch for Debian GNU/Linux 9.
Fedora is a community Linux distribution, aimed mainly at desktop usage. It is based on Red Hat Enterprise Linux (RHEL) and sponsored by Red Hat. It was launched in 2003 at the time the support for Red Hat Linux ended. As of 2019 it is available in the following versions:
- Workstation: It targets users who want a reliable, user-friendly, and powerful operating system for their laptop or desktop computer.
- Server: Its target usage is for servers. It includes the latest data center technologies. This edition doesn’t come with a desktop environmentuting!
- Core: It is meant for deployment in cloud computing.
- IoT: Images of Fedora tailored to running on Internet of Things devices.
- Silverblue: It targets users who want an immutable desktop and developers who use container based workflows.
Fedora supports the architectures amd64, ArmHF, powerpc, mips, s390 and RISC-V. The distribution has a rather short lifecycle where a new release follows roughly every 6 months. The code name for a release does not follow a fixed naming scheme but mostly consists of city names.
Ubuntu is a free Linux distribution that is financed by the company Canonical Ltd. It is based on Debian but focuses on beginners instead. That’s why it contains just one tool per task. Also, the Ubuntu team tries to incorporate brand new elements that lack stability. The packages are made available in .deb format, and are divided into categories according to their support from Canonical:
- Main: free software, supported by Canonical
- Restricted: non-free software, supported by Canonical
- Universe: free software, unsupported
- Multiverse: non-free software, unsupported
Ubuntu is available in three official editions: Ubuntu Desktop, Ubuntu Server, and Ubuntu Core (for the Internet of Things). Supported are a range of architectures like i386, IA-32, amd64, ARMhf (ARMv7 VFPv3-D16), ARM64, powerpc (64 bit) and s390x.
Initially published in 2004, there are two releases per year: one in April and another in October. The release is reflected by the version number: 18.04 refers to the April release of the year 2018. The code name of a release is based on an adjective and an animal, such as Utopic Unicorn for Ubuntu 14.10.
Linux Mint is a non-commercial distribution that is based on Ubuntu and follows its release scheme. The initial publication dates back to the year 2006. As of 2014 there have been two releases per year following the release from Ubuntu by one month. The code name for the release is a female name that ends with an a , such as Felicia for version 6. Linux Mint supports the two architectures IA-32 and amd64. The target of the distribution is desktop users that can use it easily.
Mint’s default selection of software is nice. I like that the team picks the more capable and user-friendly applications over programs that use a specific toolkit or design.
MX Linux is a popular and fast Linux distribution based on Debian stable, the distribution is a relatively new name in the Linux world. However, its predecessors MEPIS and antiX were both popular some time ago. MX Linux makes transitioning from just about any desktop operating system simple and it comes with the XFCE desktop environment as standard, although the developers have tweaked things a little, with a customizable taskbar on the left side. Although some might find the desktop interface to be a bit less-than-modern, the distribution’s primary focus isn’t on beauty, but simplicity.
CentOS abbreviates from the name Community Enterprise Operating System. As with Fedora it is based on Red Hat Enterprise Linux, and compatible in terms of the binary packages. This allows the use of software on CentOS that is initially offered and developed with RHEL in mind. In contrast to Fedora it focuses on enterprise use for both desktop and server, with long-term support. The initial release of CentOS goes back to May 2004. The software packages come from three different repositories:
- Base: regular, stable packages
- Updates: security, bug fix or enhancement updates
- Addons: packages required for building the larger packages that make up the main CentOS distribution, but are not provided upstream
CentOS is available for the architectures i386 and amd64. Shameful other architectures are not supported.
Arch Linux is a free Linux distribution that saw its first release in 2002. It follows the principle of a rolling release, which results in monthly releases of the distribution. Currently the core team consists of about 25 developers and is supported by a number of other developers, called trusted users. Arch Linux uses Pacman as a package management system. The single packages are held in four software repositories:
- Core: packages for the basic system
- Extra: additional packages like desktop environments and databases
- Community: packages that are maintained by trusted users
- Multilib: packages that can be used on several architectures
Arch Linux supports the architecture amd64. The early releases until 2007 had code names that do not follow a specific scheme.
The Linux distribution openSUSE has its roots in the distributions SUSE Linux and the commercial SUSE Linux Professional that saw its first release in 1994. The name SUSE is an abbreviation for the original German owner named Gesellschaft für Software- und Systementwicklung GmbH .
These days openSUSE is available in two main editions:
- Leap: which provides a stable platform with multiple years of support.
- Tumbleweed: which provides a rolling release environment.
The distribution often receives praise for its easy configuration (through YaST), Btrfs advanced filesystem support, and automated filesystem snapshots and boot environments.
OpenSUSE is based on the structures of Red Hat Linux and Slackware, and uses .rpm as a software archive format. It is available for the architectures i586, x86-64 and ARM. The openSUSE project aims to release a new version every eight months. As with Fedora, the code name for a release does not follow a fixed naming scheme.
As with Arch Linux, Gentoo follows the principle of a rolling release. New installation images are available weekly, with the first release available in 2002. The Gentoo project is well known for its flexibility, allowing users to run a wide range of software configurations, kernels, and init systems, as well as the usual collection of desktop environments. The customization and performance which can be gained from Gentoo’s ports tree has resulted in the meta-distribution being used as a base for a wide range of other projects including Calculate Linux (a business-oriented distribution), Container Linux (a minimal distribution for running containers), and Redcore Linux (a lightweight desktop distro). Gentoo also serves as the base for Google’s Chrome OS platform and is, at the time of writing, probably the fifth most popular Linux-based server platform for websites.
Gentoo is special due to being a source code based distribution. Before installing the software, it has to be compiled first, requires a higher degree of knowledge to use, upgrading packages via source can be time consuming. Supported architectures are alpha, amd64, arm, hppa, IA-64, m68k, mips, powerpc, s390, sh and sparc.
Slackware is the oldest active Linux distribution. The first release dates back to 1992. Regular releases are available without a fixed interval. It targets the professional user, and gives him/her as much freedom as possible. Slackware uses compressed tar.gz archives as a package format, and supports the four architectures i486, alpha, sparc and arm. The distribution was also ported to architecture s390.
Slackware Linux is a highly technical, clean distribution, with only a very limited number of custom utilities. It uses a simple, text-based system installer and a comparatively primitive package management system that does not resolve software dependencies. As a result, Slackware is considered one of the cleanest and least buggy distributions available today, the lack of Slackware-specific enhancements reduces the likelihood of new bugs being introduced into the system. All configuration is done by editing text files. There is a saying in the Linux community that if you learn Red Hat, you’ll know Red Hat, but if you learn Slackware, you’ll know Linux. This is particularly true today when many other Linux distributions keep developing heavily customized products to meet the needs of less technical Linux users.
Now. Which Linux distribution is right for you? It’s a question anyone in IT knows might come across their desk at some point. I’m going to make the answering of this question a bit easier. To reach a conclusion, you have to first ask yourself if you need commercial technical support. If the answer is “yes,” then you turn to Red Hat, SUSE, or Ubuntu. Know this: For Ubuntu, support is an add on cost, whereas both Red Hat Enterprise and SUSE Enterprise, include a certain level of support when you purchase their enterprise products.
If commercial support isn’t of concern to you, your options are wide open. That also means the choice becomes a bit more challenging. Let’s make it a bit easier. Are you looking for a server platform with a user-friendly package manager? If so, look to Ubuntu, CentOS, Fedora, or openSUSE, any distribution that works with a either apt, dnf, or zypper. If you’re looking for a server distribution that offers next to no learning curve, you can pretty much narrow that down to Ubuntu. What about the desktop? That’s where the choice gets really challenging. The best way to choose is to find one that works with apt and then select the desktop that most appeals to you. If you want modern, look to any distro with GNOME or take a look at Elementary OS. If a more standard interface is up your alley, look no further than Linux Mint.
This blog post is hardly scratches the surface, but illustrates how you can make choosing the right Linux for you a little bit easier.