Linux basics: What are Linux distributions (distros)?
Tags: beginners, linux, opensource, distributions
Published: 2021-11-27 00:33:41

The world of Linux is large and complex. It's highly competitive world of distributions, desktop environments, window managers, display managers, init systems, and ideologies to name a few. With this series of blog posts, I will be going to through all the basics of the Linux world and trying to explain, as best I can, what each concept or component is.
 
One of the first questions new users may ask themselves is what is a distribution. So let's explore that and answer that question.

## What is a distribution?

A Linux distribution is a collection of various software, modules, and configuration. Usually a distribution also has it's own purpose and philosophy. There are many distributions that use the Linux system as a core piece of their system. Even the kernel can vary in functionality from distribution to distribution. Everything from the default included software, to the the Linux kernel is customized the respective distribution.

There are numerous Linux based distributions out there. DistroWatch lists the top 100 based on the clicks on it's website. But that is not an exhaustive list. Even this image is not an exhaustive list of distributions because there are more created everyday. However, this image is pretty comprehensive. It shows something very important, that most of the distributions are derivatives of a few main distributions. Even though the main distributions are popular in their own circles, there are some derivative distributions that have reached greater mainstream acceptance. Distribution like Ubuntu, Fedora, ElementaryOS, OpenSuse, Arch, and Manjaro are just a small number of them that bring their own unique take on a Linux based operating system.

You can think of Linux and the various distributions that use like a car make and model. For example, Toyota is Linux and a corolla can be distribution. The simile may not be perfect but it does clarify the idea behind distributions.

## Not exactly one-size-fits-all

The philosophy and goal of the distribution can affect which one you pick. Often Ubuntu is the default answer to the question, which distribution should I install. There are some good reasons for this. Ubuntu is the more popular distribution so if you encounter a problem, someone else most likely also encountered the problem and can help. The Ubuntu community is the largest. However, Ubuntu's goal is a mass market appeal so the direction of the distribution is decided by that goal. There are several failed/abandoned projects in Ubuntu's history. Although, those projects have their own communities maintaining them now. There are other distributions that try to provide a specialized experience. These distributions have very active communities, although not as large as Ubuntu.

## General use

If you're use case is simply some document writing, checking emails, web browsing, or watching videos or movies, then there are many well supported distributions out there. If you're coming from Windows there distributions like ZorinOS, Linux Mint, or Manjaro that try to provide a very similar experience. ZorinOS in particular is designed to provide the closes Windows-like experience as possible. There is going to be software that you don't get like Microsoft Office. There will be open-source equivalents like Libreoffice or OnlyOffice. The order in which I mentioned the districutions above, is the order from beginner to advanced. For Windows users who are beginners, I generally recommend Zorin because it provides a very similar experience while hiding the complexities. And it is based on Ubuntu which means it get's the benefits of the large community. If the user is a bit more advanced and ready to explore a little more about how Linux works, Linx Mint is great option. Mint exposes a little more of the Linux inner workings and settings. Manjaro is for advanced Windows users who are comfortable tinkering with the OS should they need to. Manjaro is based on Arch so all software will be up-to-date and there might be some breakages that would need to be fixed.

![Elementary OS logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l26ue12g6qk88vabl6tt.png)
‌
For MacOS users the Linux world provides a lot of options as well. Although there aren't any perfect copies of all MacOS functionality, there are many that come very close. ElementaryOS is great for beginners and provides a similar look and feel to MacOS. There are however some differences, Elementary provides an application grid at the top left corner and there is no equivalent to spotlight search. But for beginners ElementaryOS is a great introduction into Linux. For a little more advanced users, there is Ubuntu. It provides a similar experience to MacOS, although there are learning curves like launch bar being on the left hand side. For these advance users there are ways to move the launch bar to the bottom and other changes that can be made to make the OS more like MacOS. Ubuntu provides a good base for tinkering. For users that are more adventurous and not afraid to deep dive into settings, I would recommend KDE Neon. This distribution combines the stability of the Ubuntu base with the latest technologies for the desktop. And the most advanced MacOS users can go in change the look of this desktop to be a stones throw away from MacOS.
‌
## Media editing

Media editing is an area of turbulence in the Linux world. Everything from the lack of hardware acceleration in some cases, to the lack of studio grade software like the Adobe suite, leaves a lot to be desired for the media editing professionals. However, for the amateurs, casuals, and hobbyists there are good quality, and free options out there to get started.

![Ubuntu studio logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mggy60fa7uhl5gc4xj4.png)

Ubuntu Studio, and Fedora Design Suite are two great options. While they both provide very similar software out of the box, their goal is where they differ. Ubuntu strives to provide a stable system, so it tends to have older versions of software in many cases. Fedora strives to provide be on the cutting edge. While this goal provides Fedora users with the latest software, even between releases, there can be some instability in this.

![AV Linux logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkndv8u0yqo8dwhm47e7.png)

Other than the distributions mentioned above, there is a AV Linux MX Edition. This distribution is tailor made for audio/video work and includes every editing they possibly can right out of the box. Some advantages here are custom compiled packages for this relatively small distribution. It is more suited for advanced users, however, so make sure to watch some tutorials before trying it out.

## Development

![Fedora Linux logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/km9bx8yt8p47sv5cdrgp.png)
 
In this area I consider nearly all distributions to be top notch. There are some standout distributions for their dedication to making latest software packages available, while maintaining stability, and providing flexibility. My opinion here is biased because I use this distribution as a daily driver. Fedora Workstation is one of the best distributions for developers for all the reasons mentioned. It packages the most recent development tools and keeps them maintained and updated throughout the life cycle of any release. Tools like NodeJS or OpenJDK that have LTS (long term support) releases, are provided as LTS by default. Fedora actually goes one step further with the concept of modular repositories. With this modularity Fedora actualy provides multiple supported versions of different software and tools. Packages like NodeJS, PostgreSQL, and MariaDB, have multiple supported versions within these modules. Different versions of each can be installed simply by switching to that module and installing the package. This makes Fedora one of the most useful distributions out there. There is no need to install an external resource to get the latest version or an older version of the tool.

Sample output of sudo dnf module list
![terminal window](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znrml1xv9p88nqct5t5n.png)
 

![open suse logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9h666y88mb5mu27f7xx4.png)
 
Another great options for developers is OpenSUSE Tumbleweed. This is the rolling release version of the excellent OpenSUSE. Rolling release means that, once installed, there is never a big release that the user has to upgrade to. For example, you never have to go from Tumbleweed 5.0 to Tumbleweed 6.0. All packages are kept up-to-date and released continuously. This has the added advantage of the latest hardware support, and the latest development tools. Tumbleweed also provides multiple versions of tools, albeit in the same repository. So you have to make sure you specify the version when installing a package. Similar to Fedora, it has out-of-the-box support for Flatpak and Flathub.

![arch linux logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h00zg3j3w6srpypt0frz.png)
 
Finally, for the most brave of users there is Arch Linux. This famous/infamous distribution has a very specific way of doing things. Arch encourages it's users to understand the underlying systems starting from the installation. While Arch does provide helper scripts to install the system, it does not offer any graphical installer. However, it does offer something that is universally considered, in the Linux community, as an amazing source of information, the Arch Wiki. While other distributions have Wikis as well, the Arch Wiki is usually better maintained, and often contains information not available in other Wikis. Arch is also a rolling release distribution, so it bring all of the advantages of tumbleweed. Arch strives to keep things simple, so when you install you system there will be no customization of the desktop at all. All software is packaged and shown as without any theme or custom icons. Arch is not for the faint of heart but once installed you get a solid system and a much better understanding of how it works.

I'm planning to make this a series of blog posts. So subscribe to learn more about basic, intermediate, and advance Linux functionality.