291
Did we kill Linux's killer feature?
(lemdro.id)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
What I think the biggest problem with the traditional package managers is that (1) they don't isolate packages from each other (when you install a program files are placed in many random places, like /usr/bin, /usr/lib etc) and (2) you can't have multiple versions of the same package installed at the same time.
This creates a lot of work for package maintainers who need to constantly keep packages up to date as dependencies are updated.
Also, because of this, every distro is essentially an insane dependency tree where changing even one small core package could break everything.
Because of this, backwards compatibility on Linux is terrible. If you need to run an older application which depends on older packages, your only choice is to download an older distro.
This is what snap and flatpak try to solve. I think they are not great solutions, because they ended up being an extra package manager next to the traditional package managers. Until we see a distro that uses flatpak or something similar exclusively, the problem is not solved.
Would you like to know about our Lord And Savior NixOS?
Wow, that's exactly what I have been missing in my life. Amen, brother!
That's because back in the day those had some good logic. On mainframe systems you had to be able to split files by how crucial they are too keeping the system alive, so you'd mount something like /bin locally but you could mount /usr/bin remotely and still keep the machine running if the connection was lost. And so on and so forth.
Nowadays we really should revise the Filesystem Hierarchy Standard but it's required by the UNIX compatibility and it's baked into so many things that you wouldn't believe.
I remember back in the 2000s the were distros like GoboLinux that tried to reorganize the files with criteria relevant to a modern machine but it didn't catch on in the Linux world. However Apple did it for Mac OS.
Gobo Linux is still there https://gobolinux.org/
The primary init manager for Linux is removing support for separating them later this year
https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html
nix overall is a much better solution to this problem.