Before trying to explain the question, I can already tell you that the answer is negative. The so-called midway was possible when people were using Win98, WinXP or Win7. Nowadays, we’re doomed, even in Linux.

1·The trigger is the kernel

What made me write this post is a sudden realization regarding the lifetime of a “normal” (as opposed to “LTS”) Linux kernel. Linux 5.11 was released on 2021-02-14, and it reached its EOL on 2021-05-19, thirteen weeks after the release! After 5.11.22, everyone is urged to upgrade to 5.12.6, released on 2021-05-22. A random previous kernel line: Linux 5.6 was released on 2020-03-29, only to reach its EOL on 2020-06-17. That’s eleven weeks. How ridiculous is that?

The non-LTS versions of the Linux kernel have a ridiculously short supported life.

The LTS versions of the Linux kernel are, currently and if we only consider those supported for more than three years in the future: 4.19 (until Dec. 2024), 5.4 (until Dec. 2025), 5.10 (until Dec. 2026). Still supported are also 4.4, 4.9, and 4.14. All the others are, in my opinion, useless and stupid by design.

Basically, you cannot trust a non-LTS kernel, because they change all the time (with potential regressions galore). On the other hand, an LTS kernel would most certainly not support newer hardware, unless a distro’s maintainers take smart decisions, such as:

  • Ubuntu LTS backports to an LTS kernel the newer hardware support from non-LTS kernels: the Ubuntu LTS Hardware Enablement Stack (HWE). The GA (General Availability) kernel is the normal one that ships with an LTS release of Ubuntu, and it’s supported for five years, but there’s a choice of HWE (Hardware Enablement) kernels, only supported for six months each, available for the same LTS release of Ubuntu. The last HWE kernel version is the GA kernel version of the next LTS major release, therefore provided with security updates for a longer time. Ubuntu 20.04 LTS was released with Linux 5.4, which still receives security updates, but the HWE kernels 5.6, 5.8, 5.10 have been released in time. To identify specific kernel issues, Ubuntu also offers select upstream kernel builds.
  • Debian stable, currently based on 4.19, has opted to include in buster-backports kernels from the 5.x line, which meant they included whatever kernel was still supported, e.g. they had at some point 5.5, then 5.6 and so on, until they now reached 5.10, which is LTS and could be a keeper, but I don’t know what their policy is (Debian 11 will be released based on a 5.10 kernel). Although EOL’d in Dec. 2020, there are still kernels from the 5.9 branch in buster-backports, which I find abnormal.
  • MX Linux offers, as an alternative to Debian’s 4.19 kernel, its own AHS (Advanced Hardware Support) kernel, built from the 5.4 LTS branch. To me, this looks like a smarter decision than Debian’s ever-changing backports, although MX’s AHS kernels receive little testing.

Basically, LTS distros have to fix the idiotic lifecycle model of the Linux kernel, thanks to the short-sightedness of Linus Torvalds and his minions.

Even worse, as proof of how little trust they have in the upstream, the maintainers of Debian and Ubuntu don’t release a new kernel update by rebuilding the upstream one, but they backport themselves the patches to the original initial release of a kernel in a given point line! For instance, if Fedora 34 fixed a few CVE vulnerabilities in their 5.11.20 kernel, Ubuntu 21.04 did it in their 5.11.0-17 kernel. Also, for the time being, Ubuntu 21.04 has avoided upgrading to kernel 5.12. Wow, Linus Torvalds must be proud of himself. Few people trust the updates to his regular kernels!

2·The impact on the distributions

This raises questions about what does it mean to use an LTS distro, being it Ubuntu LTS, Debian stable, or RHEL (and its clones). Obviously, such distros are used in environments where the main requirement is “don’t let an update break anything,” which comes at a hefty price:

  • No new versions of anything that comes as a package in a distro’s repository. Only security patches and über-major bugs are fixed or backported, otherwise the users are stuck with antiquated versions of everything.
  • Should you need to make upgrades to the hardware, or to use e.g. a newer printer or other external devices, extreme care should be used to only purchase supported hardware. Ubuntu’s HWE kernels try to mitigate this problem.

The “quicksand” approach is to use a rolling-release distro, which means everything is constantly updated and upgraded, like it or not, to the very last versions:

  • The kernel and everything that is “underlying system software” (so to speak).
  • The desktop environments and everything that I consider to be “the user experience of the system itself,” i.e. not including third-party software.
  • The third-party software, e.g. Internet browsers, office programs, multimedia players and editors, software development tools, games, etc. etc.

The “middle way” was supposed to be the fixed-release model, in which releases come at 6 to 9 months and are supported no more than 9 to 12 months, basically using the LTS model of sticking to fixed major versions of everything, and only providing minor updates.

The problem with a fixed-release model that I wasn’t aware of until now is that for a distro like Ubuntu and Fedora, with releases at 6 months, the kernel changes within these 6 months, which makes it a semi-rolling-release already!

Take Fedora 34, released on April 27 with a 5.11.12 kernel built on April 8: its users since May 19 forced to upgrade to kernel 5.12.5, so there’s a supplemental risk of breakage less than one month after the release of the distro! Again, blame Linus and his acolytes.

Originally, the fixed-release model was the most popular one, and to some extent it still is. People do use Ubuntu versions without LTS in name, they do use Fedora, openSUSE, and others.

The rolling-release model is only used by the bravest people, and I’d say that Arch and its derivatives (EndeavourOS, Garuda, ArcoLinux, RebornOS, etc.) or clones (Manjaro) are what most such people use, although there are also who use Debian testing or Debian unstable, Fedora rawhide and so on. It is my perception that in recent years, the focus went towards derivatives of LTS distros:

  • MX Linux is based on Debian stable.
  • Linux Mint, Linux Lite, elementary OS, Peppermint OS, and others are based on Ubuntu LTS, with Mint having a “backup” solution based on Debian stable, and Peppermint OS rebasing itself on Debian 11 for its 11th release numbered XI.

Such LTS distros took the precaution to use LTS kernels: 5.4 for Ubuntu 20.04 LTS and its derivatives, 4.19 for Debian 10 and its derivatives. For those with the newest hardware, MX also offers an optional AHS (Advanced Hardware Support) 5.10 LTS kernel.

Let’s wrap up what we decided so far:

  • Rolling-release distros have the advantage of offering the most recent versions of one’s preferred apps (no need for snaps, Flatpaks, AppImages, or building from source), but also they bring the risk of breaking everything because of a newer version of something that introduces a regression.
  • LTS distros have the advantage of not breaking things, with plenty of disadvantages: antiquated kernels with questionable hardware support, no newer versions of apps (unless one agrees to use snaps, Flatpaks, etc.), and also no improvement or bug-fixing in what defines the user experience, mostly GNOME, KDE, XFCE. I’m sure GNOME’s fans are unhappy not to be able to use GNOME 4, XFCE’s fans should be sad to be stuck with 4.14, and KDE Plasma’s, no matter how great each release is (or is it?), should be aware that Plasma is constantly fixing bugs and adding new features, so they’d definitely miss things for being stuck with some version for years!
  • Fixed-release distros seemed so far to be an acceptable compromise: newer (but not the newest!) version of apps, of the preferred desktop environments, etc., with a grace period of 3 months to upgrade to the next distro version, once released. Far from optimal, but acceptable. Unless, of course, a new major kernel version breaks your system midway, or as early as one month after the release of the distro!

3·Why Windows has a better model, and why it used to be more usable than now, and than Linux

Yes, I wrote that subtitle. Because what it says is true. Before Linux, things were different for the mere mortals (not for enterprise software running various *NIX things).

An operating system was meant to be used for years, being it patched or not (with nonexistent or incipient Internet, the security vulnerabilities issue wasn’t what it is today), and basically you had this:

  • People were using MS-DOS, Win3.1/WfW3.11, Win95/Win98, WinXP, Win7 for many years, because in most cases newer version of the application software didn’t require a newer version of the OS. Even the DLL Hell was solved by having each program installing DLLs in its own folder, thus creating many duplicates of the same DLLs, but the main impact was on disk storage.
  • Such an OS would still receive significant updates, which however were mostly incremental updates. I remember having used Win95 OSR2.5 that didn’t break anything over the original release, Win98 SE that improved over Win98, WinXP SP3 that was rock-stable (the major changes having been introduced by SP2), and Win7 with the latest system updates that didn’t change anything visible but was the last decent Windows release ever.
  • WinNT 4.0, one of the most overlooked operating systems, but IMHO the best “old-school” one released by Microsoft, was rock-solid, supported through the end of 2003, and with extremely modest system requirements: WinNT 4.0 Workstation (the 32-bit edition that could address 4 GB of RAM) required as a minimum a 486 running at 25 MHz (read again the value!) but preferably a Pentium (starting at 66 MHz), 12 MB of RAM (16 MB recommended; again, take your time to realize what values those mean!), and 110 MB available disk space. Back then, video cards were simply double-buffering DPRAM interfaces to the video display, and all the calculations were done in the CPU, so VGA/SVGA cards could work even without DirectX (introduced shortly after the release of Win95) or OpenGL (introduced with WinNT 3.5). Oh, the good old times…
  • Newer hardware support was relegated to the drivers themselves, meaning you didn’t have to upgrade from Win98 to Win2k or from WinXP to Win7 to use the latest device you were fancying!
  • People gave up using WinXP not when the official support ended, but only when the software developers started to use API calls not available in WinXP, or when the builds of some major apps refused to work on anything older than Vista, although they technically could!

Now, those times are gone. Windows 10 is the biggest fraud in the software industry since its beginnings, and every major update brings major changes and breaks something! People feared every time they needed to upgrade to any of these: 1511 (November Update), 1607 (Anniversary Update), 1703 (Creators Update), Version 1709 (Fall Creators Update), 1803 (April 2018 Update), 1809 (October 2018 Update), 1903 (May 2019 Update), 1909 (November 2019 Update), 2004 (May 2020 Update), 20H2 (October 2020 Update), 21H1 (May 2021 Update). Sure thing, huge numbers of lemmings joined the Windows Insider Program to be able to install the latest bugs and crashes from the Fast Ring or the Dev Channel. It’s the mass idiocy that made Microsoft that rich.

https://twitter.com/ludditus/status/1396220852874747907

Beyond the major updates that have a code name, every regular update breaks something for some people. Many updates bring regressions, even if temporary, and some even have BSODs midway: the update process starts, it gets a BSOD, after the reboot the update continues, and hopefully everything goes well in the end. The screenshot from the above tweet is from the latest regular update, and this new HP PC cannot even have the latest 20H1, despite Microfuckingsoft pretending it to be available to anyone and everyone! Oh, wait, one more time, it’s not for everyone: “We are throttling availability up over the coming weeks to ensure a reliable download experience for all, so the update may not be offered to you right away.”

I forgot to mention that sometimes Windows simply refuses to apply an update, and there’s nothing you can do. On the one hand, it doesn’t let you postpone an update indefinitely, but on the other hand, sometimes it just can’t install one of its own updates! It might give you an error code such as 0x80070003, 0x80070541, 0x800F0922, etc., but don’t expect Microsoft to have a web page where such error codes are explained!

One of my pet peeves with Win10 (but also with Win7 when it was still supported) is that some updates are stubbornly reverting my changes that disable the system’s wake up from sleep by the mouse or the keyboard. On each and every system I disabled such wake triggers, sooner or later, my options were reverted by a Windows update!

Either way, one thing is clear:

Windows used to have the best OS model of all, with an OS that is LTS and stable, and apps that could be installed in whatever version is desired by the user!

This is not the case anymore, especially as:

  • Win10 is anything but stable, it’s a fucking PITA, and constantly so. It’s a rolling-release OS breaking all the time.
  • Win10 is the only supported consumer Windows OS (Windows Server has several supported versions: 2019, 2016, even 2004 for some weird reason, and with Extended Support, 2012 R2, 2012).
  • Win10 brought user tracking (aka telemetry) to unimaginable heights. It’s an OS people paid for, sometimes unwillingly (most laptops and PCs come with it preinstalled), and yet they’re the product, not the other way around.

4·What Is to Be Done? (original copyright: Vladimir Ilyich Ulyanov aka Lenin)

Not much could be done. I strongly advise against using Win10, I disapprove of using macOS, and I couldn’t recommend FreeBSD or other BSDs. So we’re stuck to Linux for the foreseeable future.

The choice of a rolling-release distro, of a fixed-release distro, or of a LTS one depends on everyone’s priorities and tastes, but the results also depend on luck. Some criteria that could be considered include:

  1. What distros and which kernels fully support the system that’s going to be used.
  2. How much is the user willing or capable of fiddling with a system both initially (installation & customization) and in the long run (upgrading, fixing breakages & annoyances).
  3. Whether the user has a preference over a specific package management system or not (in my case, I loved rpm/yum more than I like deb, but since dnf replaced yum, it’s a no-go for me).
  4. Is the preferred desktop environment supported and properly preconfigured by a distro? Is the offered version recent enough or satisfactory enough? Would it be reasonable to keep using it without significant updates over longer periods of time, or not?
  5. Is a distro offering most if not all the required apps, either directly or via 3rd-party repos or PPAs?
  6. Is the user prepared and willing to use the stupid recent hacks of installing the latest version of an app via snaps, Flatpacks, AppImages? Alternatively, does the user prefer to build from source? Note that not everything can be built for source, and some VPN clients, or SoftMaker’s Office and FreeOffice are a few such examples.
  7. Is an independent, niche distro such as Solus, PCLinuxOS, Void, etc. good enough, giving the limited number of packages, and the unlikely availability of specific binary packages for apps for which the sources aren’t available? (See above for some examples.)
  8. For people to which games (e.g. via Stream) are important, is the distro supporting their needs without major fiddling?
  9. How much a distro can be trusted in terms of quality of the packages, availability of the servers, or even likeness that it won’t just disappear.
  10. How much a distro can be trusted in terms of the major decisions taken by its developers, being it about relatively minor aspects (e.g. not offering a certain app anymore, changing visual aspects), or rather important ones (rebasing on a different distro, replacing an important system component with a different one, changing the release model).
  11. How much a distro offers in terms of support, forums, other community aspects, and how important this aspect is to the user.
  12. Does the user have a sectarian view over specific technical issues, such as a religious rejection of systemd?
  13. Some people (like me!) can have personal dislikes, including judgments such as “the defaults are shitty / by defaults it’s ugly like shit” or they might have a history of personal conflicts in a distro’s forums, mailing lists or other communication channels to key developers of the respective distro.

With great freedom comes great responsibility,” runs a common saying. Nobody knows for sure who is supposed to have said that for the first time, but a version of this could be found in Victor Hugo, Actes et Paroles (1875-1876): “Tout ce qui augmente la liberté augmente la responsabilité“; some claim Voltaire also said something to this effect, but William Lamb, 2nd Viscount Melbourne (1779-1848) too has said that “the possession of great power necessarily implies great responsibility.” Repeated by Harry S. Truman and many others since then, this meme seems to have its origins in the New Testament: “From everyone who has been given much, much will be demanded; and from the one who has been entrusted with much, much more will be asked.” (Luke 12:48 NIV)

All this was just a diversion to mask this sad truth:

Choosing a Linux distro and sticking to it is one of the most difficult tasks in today’s circumstances when everything that is or contains software is totally fucked-up. My ideal times were back when I was running Windows 3.1 with Peter Tattam’s Trumpet Winsock atop MS-DOS, and I could enjoy fabulous MS-DOS games that didn’t require an arm and a leg to run.

Fuck you, modern times!

5·P.S.: Compromises have to be made

I recoiled in horror seeing how Manjaro currently aims to maintain eleven different kernels: linux44 (4.4.268), linux49 (4.9.268), linux414 (4.14.232), linux419 (4.19.190), linux54 (5.4.118), linux510 (5.10.36), linux511 (5.11.19), linux512 (5.12.2), linux513 (5.13-rc1), linux54-rt (5.4.106_rt54), linux59-rt (5.9.1_rt19).

This being said, I tend to recommend the following:

Vectors by Vecteezy

6·Late updates, three of them

Primo, I forgot to mention that Red Hat Enterprise Linux 8 has introduced a concept that somewhat tries to break the standard LTS model for some packages: Application Streams:

Multiple versions of user space components are now delivered and updated more frequently than the core operating system packages. …

Modules are collections of packages representing a logical unit: an application, a language stack, a database, or a set of tools. These packages are built, tested, and released together.

Module streams represent versions of the Application Stream components. For example, two streams (versions) of the PostgreSQL database server are available in the postgresql module: PostgreSQL 10 (the default stream) and PostgreSQL 9.6. Only one module stream can be installed on the system. Different versions can be used in separate containers.

The list of the available Applications Streams is currently of about 50. As expected, they don’t include desktop components. We’re still far from the total Core OS separation as encountered in Fedora Silverblue or Clear Linux (mentioned here), but the stress is on containerization (discussed in the same blog post).

Secondly, I don’t recommend anymore the above two distros for some reasons, including those mentioned here and here; it’s still OK for most people to use them, though.

Thirdly, I just noticed that Linux Mint, despite being based on Ubuntu LTS, decided to upgrade XFCE to the next version, i.e. Mint 20.2 ships with XFCE 4.16 instead of Ubuntu’s 4.14.2 (in 20.04 LTS), which makes it already a bit “between Long-Time Support and quicksand”; it’s less relevant that Mint 20.2 Cinnamon comes with Cinnamon 5.0, because Cinnamon is a Mint project, not an Ubuntu one, so it’s more like “out of [the known] universe” in terms of Ubuntu’s repos, and practically “quicksand”!