Skip to content
loading...
Discussion
markdown guide
 

There are mostly 3 different distributions:

  • RPM. The RedHat Package Management based distributions. Most of them forked at some point in time from the RedHat distribution. Most RPM based distributions are hard forks of RedHat. This includes RHEL (Commercial supported server), Fedora (desktop), CentOS (non-commercial version of REHL), SUSE (both desktop and server), ...
  • Debian. Uses a completely different package management system (superior in my view). Distributions branches from Debian generally still follow Debian as mainline. As Debian has strict rules about keeping software stable the packages are not the latest (but do feature the latest security updates). This is something other distributions have addressed in various ways. Debian is mostly used as server. A common Debian based desktop distro (also used as server) which features newer major release of packages in Ubuntu. From Ubuntu a bunch of other distributions have popped up to have different system standards, mostly UI related.
  • Roll our own distos. These generally come with little standard packages and require you to do more yourself. Well known distributions are Gentoo and Slackware.

So it's mainly package infra which makes the difference in distributions. In most cases this does not lock you down in the kind of software you can run. But more which supporting tools are available to get software running.

 

Good comparison and examples used to show the diff, I did not get if Arch distros are based on Debian or RPM? They don't right? Pacman is based on another package management or is a totally diffenrent one?

 

Arch's package management follows more the RPM style than DEBs style in package management. It is somewhat in the middle of the two. But it's not a fork of either, it's a different kind of distribution.
There have been more distributions which were not RPB/DEB/or-roll-your-own based. But I have no idea if they are still around, or how applicable they are. That's why I said "mostly".
For example, Android is a technically Linux distribution, but quite unlike all the others I have mentioned.

 

Preface

To start talking about different distributions, I think it's important to first preface with a reminder that Linux is simply the kernel underneath all of these distros, which means it is a very thin hardware layer that provides a common development platform to build upon. To build out the rest of the OS, we need something like Busybox, Toybox, or GNU Coreutils to provide us with things like a shell and basic text manipulation. Knowing this, you may find that (almost) all distros are extremely similar because they all share these foundational layers. Most desktop distros are going to use GNU Coreutils. They are also (almost) all using either Xorg or Wayland for display, and many use Systemd for init.

So what's different?

Generally speaking, the main differences between distros are the package manager and the packages. I like to explain the package manager to non-Linux people as being like the App Store for your computer. Packages (apps) are stored in the distro's repository, and the package manager makes installing/updating/managing your packages trivially easy (hopefully).

So what are the big ones?

As can be seen here, there are tons of Linux distros, but they all really sort of come from Debian and Red Hat, with some honorable mentions being Slackware, Arch and Gentoo. Some modern choices for Debian-based distros are Debian, Ubuntu, Mint, Elementary OS, and Pop!_OS. Red Hat distors would include Red Hat, Fedora and CentOS. There's also Arch, Manjaro (very similar to Arch), and Gentoo.

What are the differences between them?

Debian uses the (wonderful) package manager apt, Red Hat uses rpm, Arch uses pacman, and Gentoo uses portage (invoked with the emerge command). The technical differences between these package managers is really not something too many people need to care about with the exception of portage, because it installs packages by compiling them from source every time (meaning installing/updating takes a significantly longer time, but you have much finer control over your software). It's mostly just a syntactic difference between them. The real difference comes from the packages themselves, as well as how they're distributed.

Release Models

The release model of packages is probably one of the bigger determining factors when choosing an OS. It basically determines how stable your OS will be vs. how up-to-date your packages will be.

Rolling Release

Under a rolling release model (such as that of Debian unstable or Arch), packages in the repo are updated as soon as a new version comes out. This means you are constantly getting the most up-to-date software, however bugs are more frequent and it is very difficult to guarantee that packages will work correctly together.

Fixed Release

Under a fixed release model (such as that of Debian stable), only security and stability updates are added to the repo until a new major version of the OS comes out. This means that you are more likely to get outdated packages, but a much more stable experience.

What else is there?

If packages, package managers, and release models were all there were to choosing a distro, there wouldn't be so many choices! There are all kinds of differences between distros, and probably the best way to get a feel for what one does over the other is to just spend a couple minutes on their websites! Some of the common differences you'll likely find are:

  • Ease of installation
    • Ubuntu is extremely straightforward whereas Gentoo will likely take you at least a full day
    • This is probably the biggest difference between Arch and Manjaro
  • Desktop Environment choices
    • Main choices are Gnome, KDE, XFCE, LXDE
    • This is where Kubuntu, Xubuntu, Lubuntu etc appear
    • Some people (like myself) prefer not to use a DE and instead prefer just a Window Manager like i3. This is easier to set up in some distros compared to others
  • Xorg vs. Wayland
    • Xorg is extremely old and has fundamental problems, Wayland is new, but is not fully supported by everything yet
  • Init System
    • Basically Systemd vs. everything else
    • I don't mind Systemd too much, but many people dislike it based on its developers and the way that it seems to swallow everything it can
  • Default packages
    • Some distros are meant to be extremely minimal, while others try to come out giving you every program you could ever need out of the box
  • Devotion to Libre Software
    • Some distros will absolutely not allow you to install proprietary software of any kind, or at least give you that option, while others simply have no problem with proprietary software at all

There are many, many other differences between distros, but hopefully this helps to clarify a lot of the big ones, and helps you to make an informed decision should you decide to try switching over!

 

All the popular distros ? No one can do that. I will explain few of them.

1.) Linux Mint : It's Ubuntu LTS based distro with Cinnamon & MATE as desktop environments. It's beginner friendly and just works. Release cycle is 6 months and upgrade is available. They also have a debian based version called Linux Mint Debian Edition(LMDE) which is rolling distro. Using it for 10ish years and I like Cinnamon a lot.

2.)Ubuntu : Ubuntu is Debian based distro. It's also beginner friendly. The LTS versions have support for 5 years which are released in a gap of 2 years every April (16.04, 18.04, 20.4). Non LTS versions are released every 6 months but have support of 9 months (18.10,19.04,19.10). The versioning format YEAR.MONTH.
You will see LTS versions in digitalocean/linode droplets. GNOME Is the default desktop but previously they had unity. Personally I have never warmed to Ubuntu. And I am trying since Ubuntu 8 I guess.

3.)Kubuntu: Kubuntu is Ubuntu with KDE Desktop Environment. The reason I have mentioned it separately is because it's a pretty solid distro. I think Kubuntu is the best KDE distro. KDE Neon is neat too.

4.)Fedora/CentOS/Red Hat: CentOS is commonly used in servers. Fedora is base distro for GNOME Desktop Environment. I have neutral outlook towards fedora.

5.)Arch Linux: It's defacto linux if you like documentation(Arch wiki is awesome) and memes. It's a rolling distribution so you never have to do a reinstall. It uses pacman for package management. Installing Arch grants uses super powered bragging rights.

6.)Manjaro :Manjaro is Arch for new users. It's good. I use it's KDE version.

7.)Elementary: It's again Ubuntu based distribution but has UI of MacOS. Thats about it.

8.)openSUSE: It's another enterprise distribution. It has 2 version , Leap and Tumbleweed. Leap is tested distribution and Tumbleweed is rolling distribution. YaST is really good. I prefer openSUSE for GNOME Desktop version.

9.)Debian : Debian is parent of Ubuntu and others. It's plain and solid. Thats about it.

10.)Puppy Linux: It's the distro you should sue if you have low specs. Like Pentium 4 + 256MB ram. It's very small and very fast.

11.)Gentoo: Gentoo is a distro you use if you want to look down Arch users. Portage is the package management utility used. You can try Sabayon if you want something easier.

12.)MX Linux : I like it for some reasons. Just install it. Based on AntiX Linux. Uses XFCE DE.

13.)Tails : Tails is privacy focused distro. Network Communication is over Tor and it's to be used in Live environment.

14.)Kali : So you want to be hacker. Installing Kali is step no. #1.

15.)ParrotOS: Parrot is similar to Kali.

16.)BlackArch : BlackArch has shitload of tools for Security and stuff. But it has window managers which take some time to adjust.

17.)Rasbian: It's debian for Raspberry Pi

18.)Solus : Solus is distro for Budgie Desktop Environment. I like Budgie DE.

tl;dr
Use Linux Mint if newbie , use Kali for Hacking , use Tails for privacy , use CentOS for servers, use Arch for memes.

 

I was hoping to see more Arch mentioned..

..on memes xdd

 
 

Ok here is my attempt at explaining, based on the building blocks a distro is made of. And I will assume you ask for a friend, who mostly wants to use linux, and not learn linux.

kernel
First, there is the linux kernel. This is relevant only if you plan to buy some bleeding edge hardware, or want to know if the touchpad from laptop XY will be well supported or not. As a simple user, there is nothing more to say about the linux kernel than that it determines the support of hardware.
Assume that you basically have no say in the kernel version you are using. It will be updated when a major updates hits your installation, but otherwise no. Let's assume it is difficult to update your kernel yourself and that it won't happen.

release
There is the model called rolling release which updates constantly and will break things now and then. I have no experience with these, but I claim: Don't use a rolling release distro as your first linux.
The other model is based on LTS. You won't get the latest bugfixes (which can be annoying), but you have a much more stable and curated experience overall.

packaging
This is relevant when you install software. Basically there are 3 clubs: deb, rpm and aur. If you want to download and install some software, they basically support your club or they don't. Deb is the best supported club, I believe.
Now what to do if your club is not supported? Either you build from source, which can be everything from easy to difficult. Or you use something package-agnostic, which would run just on any linux: snap, flatpak, or appimage.
I have only experience with deb, and in combination with snap, flatpak and appimage, I can conclude that I never ever had to build from source in the last 3 years.

desktop
This is not the icon-cluttered image you see when you minimize all programs (I refer to that as workspace later on), but rather the whole "Operating system UI" (and a bit more):

  • the task bar where you pin programs, see which are currently open, have your system area with clock, volume and battery etc.
  • the start menu
  • the whole "system configuration" affair
  • the core software, like a text editor, the console, your calculator etc.
  • the keyboard shortcuts
  • the theme, the icons, the system font
  • high-level productivity concepts like "virtual workspaces", or "activities"
  • extra things like widgets, that you can place on your workspace (weather, clock, cpu usage, sticky notes etc.)

The biggest ones are Gnome, KDE Plasma, XFCE, in my opinion. And I totally would recommend to pick a distro which uses one of these three.

software
Beside the default minimal applications I mentioned in the list above as "core software", many distros deliver additional software (less or more, depending) like GIMP, LibreOffice, Thunderbird, etc.
This doesn't play a big role in my book. When I don't like their email program, I ignore it and install my preferred one. I have to download a bit more, and carry through all the updates of the one I actually don't use, but I would not base my decision for a distro on the pre-delivered software.

support
This is often underrated. If you "dunno-X" or "suffer-from-Y" or want "different-than-Z", you can always search. People say good things about the wikis on AUR-based distros (see section packaging), but I can't tell first-hand. What I know though, is how excellent the support is for ubuntu-based distros. I have yet to find a question that didn't yield an answer in the search results. And in my beginnings, I didn't even phrase the questions very smart and still found answers.

conclusion
You asked for an explanation, not a recommendation of distros, but I feel this does belong here :)
I am not much of a distro hopper, but I have been using Linux Mint, Ubuntu/Unity and Kubuntu so far. The first on an old laptop to get my first contact with linux, the other two as only OS installed on my only computer.
So based on my limited experience, I recommend either:

  • Linux Mint: with XFCE, you get a distro that is particularly newbie-friendly, and has a rock-stable desktop. It looks a little outdated though, and this is why I didn't use it again when I made the jump.
  • Ubuntu: It is widely supported (deb-club), has huge support (internet search), developed by an actual company. If you like to play games, most studios who support linux, actually just support (as in: tested) Ubuntu. The Gnome desktop I never tried, but it is widely used, some people have complaints about it, but I feel the majority is just silently enjoying it.
  • Kubuntu: I recommend this because I use it myself. You get all the benefits from Ubuntu, just instead Gnome you have KDE Plasma as desktop. KDE Plasma looks awesome, is highly configurable (if you don't like to do that, the defaults are fine too). Like Ubuntu it is LTS-based, so you hop every 2 years to another version with 5 years of support, typically. With a lot of padding, if you don't feel like updating this year or next year.

(edit) Two more tips:
a) buy an external HDD. Whenever you feel worried about loosing all your stuff, back it up. I used this once when I jumped from Ubuntu to Kubuntu, and never due to an emergency. But it gave me so much confidence and made me worry less. And I often worried when I started with linux.
b) have a secondary device with internet access. Your smartphone may do it, an old laptop is even better. I never had trouble with my internet access, but in case I have, I can still search the web for solutions :). This is also mostly for "soften the worrying".

 

As mentioned elsewhere, the primary difference often comes down to packaging, though philosophy also plays a major role.

The majority of all distros are derivatives of

  • Red Hat Linux (RHL), eg
    • CentOS
    • Fedora
    • SuSE / OpenSUSE
    • Mandrake, which became Mandriva
  • Debian
    • Ubuntu, which has myriad derivatives, including
    • Linux Mint
    • Elementary
    • Linux Mint (They have a rolling flavor that's closer to Debian than Ubuntu)
    • Mepis
  • Slackware
  • Arch, including
    • Manjaro
  • Gentoo which has derivatives, eg
    • Funtoo

Many use binary packages - so you would ask for a program (eg Firefox) and the package manager would download precompiled binaries, normally a bunch of packages which end up supplying the entire app. Linux distros generally share common libraries better than Windows or OSX, but there are also bolt-on package managers like Snap which do things an OSX-like way, having a self-contained package with all dependencies for each app. Snap can be added to a lot of existing distros and used in parallel with the system package manager.

Some distros, like Gentoo, download source for packages and compile that source on the host machine. The reason mainly comes down to the other great discriminator between distros: philosophy.

The philosophy of a distro will determine a lot about it. For example example:

  • Elementary and Linux Mint aim to be as user-friendly as possible, so setup is normally simpler and they will tend to pull in extra packages for an overall expected experience
  • One of Debian's primary philosophies was "run anywhere", so there's a lot of different variants for different hardware
  • Gentoos philosophy centers around freedom of choice, so I don't have to run systemd if I don't want to - I choose OpenRC. This is also at the heart of their package manager - portage's USE flags and other keywords allow me to tailor my machine exactly how I want it. Packages are configured by default to be working but minimal - you opt-in to fancy features. Don't have a printer? Fine, you can build LibreOffice without printing support. With this flexibility comes the responsibility of understanding more about your system.

I used Debian or a derivative (Ubuntu, Mint) as my primary desktop at home for about 16 years before switching to Gentoo. I got tired of the questionable design decisions in systemd which impacted me. I've also used OpenSuSE, CentOS and Fedora as work machines. OpenSuSE is quite friendly. I found Fedora to be often frustrating - their package manager, yum, was often slow and did silly things. Ubuntu is nice for a new user because it's easy to find help and documentation and apt is a sane package manager. If you want to have total control and learn a lot and don't mind the steep curve, Gentoo is great. The derivative Funtoo aims to be a little easier to use.

 

Linux, an unfertile love affair with users

I love Linux by all means and I use it as my main OS since 2011 (Kubuntu mainly). BUT I am a power user & developer, and I still have spend endless hours messing with inefficiencies and issues.

I can't help but wonder why no one is mentioning that this unnecessary plethora of choices leads to the "Paradox of choice" and makes even people like me get frustrated with the fragmentation, the misses in each and every choice, the split of the effort and ultimately the low adoption Linux has in the Desktop world.

We have

Thousands of distros, at least 5 known Window managers, another 5 packaging systems, tens of extremely similar software packages that are half baked and the list goes on. Why can't we have just afew flavors THAT WORK?

Divide and Conquer

I guess one good way for Micro$oft to stop the spreading of Linux back in 2000, would be to just fund a huge number of universities, research labs and teams to come up with DIFFERENT & CONFLICTING versions of Linux. Knowing that developing software doesnt have a full stop and product support is often more crucial than the actual product it self. Maybe they just did that and we took the bait. It's called

One Linux

Yes, I can hear the voices screaming "but there is only one linux, one kernel and blah blah" but do normal users care about the "kernel"? Do they even know what it is? I personally dont care that much either when shit hits the fan and my eGPU crashes my box. Users want things to "just work" and with Linux there will always be things that don't work out of the box and need a lot of work. And my point is that the main culprit is lack of coordination due to fragmentation.

That's my 5c.

 

This is an unpopular opinion, but the differences between distros usually don't mean much. (excluding arch) Choosing a distro is basically choosing what software you want bundled with the installation, and some are easier to manuever than others since they come with more utilities. For example, POP_OS! is often recommended for beginners with nvidia graphics cards because it has the drivers pre-installed. In pretty much any linux distro you're going to be able to make it look like any other.

 

Well, Johnny, sometimes we eat things that aren't as tasty as some things, because they're good for us. And there are a variety of these things! Like your vitamins and your vegetables.

You just have to look at the menu and pick one, or no dessert for you.

But you need to stop eating sand. Johnny stop that! Sand is not for eating!

 

I've been trying to find a special Linux distro while I was trying to migrate a few days ago but when I "found" mine I learned that Linux is fully customizable so the only difference in distros is what they come with and what they bare with them and what makes your life easier.

 

maybe worth a few minutes of your time to work through this... beta.distrochooser.de/

 

Arch is the only way to use Linux right now.
All things you need in one big repo!
If you not that good use Manjaro!

 
Classic DEV Post from Jul 30 '19

PublishTo.Dev: Scheduling article publishing on dev.to

Ben Halpern profile image
A Canadian software developer who thinks he’s funny. He/Him.