DEV Community

Discussion on: Explain the different popular Linux distros

Collapse
 
fluffynuts profile image
Davyd McColl

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.