I have come to the conclusion that the weakness is really that we don’t have Linux operating systems; instead, we have Linux distributions. This means that we don’t have a clear line between what is the operating system and what are the applications installed by the user. Compare this with other operating systems like FreeBSD, MacOS, and Windows where the base OS is separated from user applications and you can easily find a list of the installed applications.
The closest to this in the Linux world are immutable Linux distributions like openSUSE MicroOS/Kalpa and Fedora Silverblue, offering a base system where you can install Docker/Podman containers, Flatpaks, Snaps, and AppImages on top of it. Some of them, like MicroOS, allow you to modify the included packages in the base OS system. The trend is also towards desktop environments becoming immutable base OSs, like GNOME OS and KDE Linux.
So in a way, Linux is becoming more like FreeBSD, MacOS, and Windows, but I’m afraid we are also making computers more complex and removing some of the freedom which I believe is one of Linux’s biggest strengths, if not the biggest. I think we should aim for something between the “Everything is a .deb/rpm package” and “You will own only Flatpaks and be happy”.
Instead, I would like Linux distributions to focus on three things: user experience, freedom, and security. UX in the sense of beautiful interfaces that are easy to use, yet secure without limiting what you should be able to do with your computer. What I really want is a stable and secure base OS that allows me to modify the base, but where the base is very minimal and the rest are portable Linux applications in the format of AppImage. If we can move most of the applications that today are .deb/rpm to AppImage, I believe the whole Linux ecosystem would benefit a lot.
Developers of software like Firefox, Google Chrome, Steam, and Spotify can focus on making one AppImage that runs on all different Linux distributions. Then the Linux base OS, probably with kernel security, may or may not ask the user for specific permissions (network, folders, etc.). If I want the highest security, that should be a setting somewhere, not built-in with no opt-outs.
The situation around Snap, Flatpak, and AppImage and Linux distributions focusing on repackaging the same software is annoying. Let’s rally around AppImage and innovate around it. Let’s make all GUI applications available in that format, and let’s build package managers and app stores to make it easy to find them. Build optional security around AppImage if people need or want it, with sandboxing and transparent user control.
Then we might finally have a “This is the year of the Linux desktop”.