Skip to content

Instantly share code, notes, and snippets.

@eatmyvenom
Last active June 24, 2022 08:28
Show Gist options
  • Save eatmyvenom/1ad61c4edbb82da383bf4aa22f0322d8 to your computer and use it in GitHub Desktop.
Save eatmyvenom/1ad61c4edbb82da383bf4aa22f0322d8 to your computer and use it in GitHub Desktop.
An overview of rolling release distributions for linux

An overview of rolling release distributions for linux

Between Linux distributions there are a vast number of options on getting different styles of an operating system. Quite a few of these distributions follow the classic idealology of updates like how windows and Mac do it with major updates every so often. However there are two other styles of updates that exist. One is Long Term Service or LTS updates. Also there is rolling updates. This will focus on rolling releases of Linux.

What is a rolling release?

Rolling releases are updates that come to the user whenever they are available. Think of how your apps update but for your computer OS. This is quite different from the tradition update with major release approach. This keeps users up to date with the latest availible bugs features.

Are all of these distros the same then?

Actually very much not, its quite interesting seeing the different approaches being taken to the same idea. Here are a few examples of unique things about different distros.

  • Nixos - Contains 60k packages in their git due to ease of updating these packages, while its less used, it has vastly more packages because there isnt support for anything other than the nix package manager. Nix as a package manager is quite unique in ways which cannot be summerized here.
  • Gentoo - Contains 19k packages in repos but the whole deal is to compile everything you install, therefore only a ebuild is distributed. This is quite a bit slower for the end user than just simple downloads but has many other upsides such as software without unnecessary bloat. Also you can have everything be optimized for your own computer.
  • Arch - the main repo of packages is not very small but is also not very big, thats because arch users have easy access to the Arch User Repository (AUR), which grants them vastly more packages via PKGBUILD's. Due to the wide spread usage of arch and its derivatives, the AUR is the largest package repository to exist.
  • Void - Similar to arch except the main repo does have quite a few more packages, however it has Void packages which has user submitted templates which can be built on the end users system.

Every single update is not a large update.

You actually usually get updates that you barely notice. This is quite nice however because any software you use is able to utilize really new features. Some software is able to use these features quickly but its not very common for developers to adopt versions that are days old.

Users update alot

Speaking from personal experience, its possible for people to run updates 3 - 4 times a day or more. This is generally a more stable approach when it comes to rolling releases because you can really mess up your system when you neglect updates for 1 month and come back with 200 package updates.

This is also why such people have a very low uptime, they update their kernel and then reboot their computer into the newer kernel. Personally I have a cron job every night at 4am that reboots my PC.

How up to date is it?

Well it depends, different operating systems are at different levels of up to date. I'm going to use the Linux kernel itself as a comparison point here. And provide a table of the versions as of the time of writing.

Updated on 2020-10-03 1AM PST

Upstreams:

Upsteam project Branch/channel Kernel version
Official Mainline 5.11-rc2
Official Stable 5.10.6
GNU Stable 5.10.6
Distro Branch/channel Kernel version
Void linux Master 5.10.5
Gentoo Master 5.10.6
Arch Core 5.10.5.arch1-1
Arch Testing 5.10.6.arch1-1
Manjaro Unstable 5.10.6
Artix System 5.10.4-2
Kali linux Experimental 5.10.4-1kali1
KaOS Build linux-next-5.10.4-1
KaOS core linux-next-5.10.6-1
OpenSEUS Tumbleweed 5.10.4
Guix Master linux-libre 5.10.6
Debian Sid 5.10.4+1
Debian Experimental 5.10.4+1
Fedora Rawhide (34) 5.11.0-0.rc2
Clear linux Master 5.10.5
Ubuntu Daily 5.11.0
NixOS Unstable 5.11-rc2
Solus Unstable 5.10.5
Alpine Edge 5.10.6

Changelog

2021-01-14

  • Added void linux overview
  • Updated overviews of other distros
  • Distingished upstream kernel projects

2021-01-10

  • updated versions

  • changed guix link

  • changed fedora link

  • Removed fedora core

2020-12-20

  • updated versions
  • changed debian link
  • changed alpine link
  • fixed guix link

2020-11-30

  • updated versions
  • fixed artix link to go somewhere helpful
  • added alpine linux

2020-11-22

  • updated versions
  • changed below comment
  • removed dahliaOS as it is not updating
  • Added artix

2020-10-03

  • added Fedora rawhide
  • added solus
  • added links to all the versions so its easy for people to check
  • added changelog
  • updated versions
@eatmyvenom
Copy link
Author

eatmyvenom commented Oct 3, 2020

I will note that while kernel version is generally a good comparison point, it does not make an OS locked to however out of date it may be. Personally I have a laptop on void linux and a PC on arch, the PC however runs a mainline kernel which tracks the mainline git branch. Nearly all of these OS's can be updated even newer if you want to do a bit of extra work, but if you want bleeding edge and ease of use then the custom kernels is of less interest.

It is also important to note that while it may appear that some of them are more out of date than others in the same major version, it does not mean that its more stable, manjaro here is quite possibly more unstable than arch if some bugs are fixed in newer versions or if there is some other version mismatch due to how manjaro is made.

@eatmyvenom
Copy link
Author

Another note that is somewhat important is that some times a distro will roll back a kernel version due to bugs. Gentoo recently did this with the 5.9.10 kernel due to issues with XFS corruption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment