An Open Letter on Linux Compatibility (and Why Flatpak Isn't the Fix)

a month ago by parallelminds to c/linux

Relevant to SteamOS and open-platform gaming, it proposes a different paradigm for Linux-based distributions and operating systems, one that could address compatibility issues on alternative platforms that Windows users often take for granted.

EDIT: added a QnA section that tries to answer some of the questions posed here.

thenextguy 26 points a month ago

At least skip the Reddit link and post the source...

https://parallel-minds0.github.io/...

From a quick skim, I think the author doesn't really know that much about how Linux and its various components and libraries actually work. Though it seems they are loosely proposing somebody new compatibility layer?

And what is this supposed NT compatibility promise?

The Linux kernel has maintained strict backwards compatibility at the user space level for ages.

Individual libraries are versioned and can be kept around for as long as anyone likes.

Package management and dependencies might be a bigger problem, but I would guess a manageable one?

path: 0 25877499, hotness: undefined, score: 26, children: 16
squaresinger 8 points a month ago

That's OOP: https://xkcd.com/927/

If I understand OOP correctly, the NT compatibility promise is the idea that not only the kernel but also the userspace is standardized, backwards compatible and stable.

OOP really doesn't seem to understand how Linux works under the hood and what the issue is.

The main problem is not that e.g. installed libraries are in different paths under different distros, but that installing libraries is different between different distros, and that different versions are available.

A library package might be called libXYZ-dev in one distro and libXYZ-devel in another, and in the third distro it's not even available or available in the wrong versions. That's the real problem, and OOPs approach of splitting package distribution from the stability of the user space is completely contrary to their proposed solution.

They just assumed two contradicting goals would somehow make a coherent whole.

That author just saw Windows and didn't understand why that system works, saw Linux and didn't understand why there's fragmentation problems there and thought that applying the Windows model to Linux somehow magically works.

Edit: I just noticed that the OP and the author of the blog post have the same user name and thus likely are the same person.

path: 0 25877499 25877801, hotness: undefined, score: 8, children: 2
parallelminds -8 points a month ago

I think you’ve gotten a really bad read of my article. We know the typical Linux stack has problems with libraries failing to maintain backward compatibility and even when they do, the guarantees are nowhere near as strong or long-lasting as on Windows.

The problem is ultimately cultural. My article is essentially an appeal to anyone willing and capable of building a sane userspace through a single distribution. If that distribution adopts the stack, others can copy it or diverge at their own cost.

As for separating the userspace from regular applications, the point is that the OS shouldn’t treat system packages and user packages as the same thing. That’s separation of concerns, not a contradiction.

path: 0 25877499 25877801 25877978, hotness: undefined, score: -8, children: 1
thenextguy 12 points a month ago

I think you’ve gotten a really bad read of my article. We know the typical Linux stack has problems with libraries failing to maintain backward compatibility

We do? I certainly don't. Which libraries? That's likely not a generic Linux issue. That's more probably a specific issue with those specific libraries or distros.

path: 0 25877499 25877801 25877978 25878056, hotness: undefined, score: 12, children: 0
illusionist 5 points a month ago

Isn't package management "solved" by nix?

path: 0 25877499 25878181, hotness: undefined, score: 5, children: 0
parallelminds -1 points a month ago

Your comment reduces my article to vague claims of ignorance and a basic mention of something you admittedly only glanced on. The article is much richer in depth than your comment suggests, I encourage people here to actually read it so we can have a proper discussion. I promise you that it won't disappoint even if you don't agree fully with it.

path: 0 25877499 25882368, hotness: undefined, score: -1, children: 5
thenextguy 6 points a month ago

I did read it. It's not that long.

I still don't know what problem you are trying to resolve that doesn't already have one or more solutions.

You listed one issue, specific to gaming and cheating, that was simple human error and miscommunication that I don't believe would be solved by what you are proposing.

What other examples do you have? You seem to be starting with an assumption that everyone knows and agrees what the problem is without truly stating it.

The Linux kernel, and most userspace libraries already have a contract to maintain backwards compatibility. Some developers may choose to ignore this or make mistakes and break this contract. Again I do not believe that adding some new compatibility layer will fix this.

I'm sorry, but your article seems very hand wavy to me and doesn't have enough detail on how it would work. What you are proposing seems huge. I can't imagine enough people buying in to the idea to get it off the ground.

path: 0 25877499 25882368 25882726, hotness: undefined, score: 6, children: 4
parallelminds -6 points a month ago

There are many problems with existing solutions, I've already had a long discussion on this on the subreddit. and I went in more detail in the conversation. check it out if you're interested.

path: 0 25877499 25882368 25882726 25883196, hotness: undefined, score: -6, children: 3
thenextguy 11 points a month ago

Then why did you post here if you're not willing to discuss it here? It seems you just want everyone to agree with you. Sorry to disappoint.

path: 0 25877499 25882368 25882726 25883196 25883426, hotness: undefined, score: 11, children: 2
parallelminds -4 points a month ago

Why has there been recent issues with compatibility with the userspace then? from systemd to even not so distant news of glibc failing? The article goes a bit more in depth about what needs to be done, it describes a different packaging and distribution model as well that is simpler and more convenient in design.

path: 0 25877499 25877581, hotness: undefined, score: -4, children: 5
thenextguy 16 points a month ago

I think you need to be much more specific if you think anything is going to come from this. I have no idea what recent issues you are referring to.

path: 0 25877499 25877581 25877880, hotness: undefined, score: 16, children: 4
parallelminds -9 points a month ago path: 0 25877499 25877581 25877880 25878033, hotness: undefined, score: -9, children: 3
thenextguy 11 points a month ago

You picked a particularly rare example. Meaning it was a combination of unexpected use case and 10+ years of deprecation happening to coincide at the wrong time and place.

Even if you had your supposed compatibility layer in place human error or misunderstanding is still going to cause issues like this from time to time.

The DT_HASH issue was specifically NOT an api breakage. It was some apps consuming some internals without keeping track of changes. Yes, they technically broke backwards compatibility. But those apps weren't supposed to be using that field for a long time.

path: 0 25877499 25877581 25877880 25878033 25878371, hotness: undefined, score: 11, children: 1
BrilliantBadger 1 point a month ago
path: 0 25877499 25877581 25877880 25878033 25890454, hotness: undefined, score: 1, children: 0
CallMeAl 11 points a month ago

As a lot of you already know, backward compatibility has never really been the strong suit of Linux or the BSDs.

From the first sentence I have the strong impression the author is deeply confused and mistaken.

path: 0 25887751, hotness: undefined, score: 11, children: 9
ms_lane 1 point 21 days ago

They aren't entirely wrong - to give an example:

Stepmania 3.9 win32 still works fine on Windows 11, you run it, it works. It's not statically compiled either. It works on wine just as good.

Stepmania 3.9 for Linux i386 though - now you've got to comb through old libraries to get old, incompatible versions of libpng, libmad, sdl1.x, etc, you've got to set up multiarch, fumble around with sound too since it's expecting OSS or ALSA directly.

The windows version still 'justwerx' even on Linux under wine. The linux native version also works after a lot of faffing about.

They are wrong that an extra layer of abstraction would make this better. Just use .appimage with the libraries included. (though that wouldn't fix the sound issue)

path: 0 25887751 26052610, hotness: undefined, score: 1, children: 0
parallelminds -3 points a month ago

I am not talking about the kernel. and the userspace of either platform is nowhere near as strong as it is on Windows.

path: 0 25887751 25887837, hotness: undefined, score: -3, children: 7
CallMeAl 2 points a month ago

Since it has what you want, why don't you use Windows in that case?

path: 0 25887751 25887837 25887927, hotness: undefined, score: 2, children: 6
parallelminds -1 points a month ago

This isn’t a forum for throwing quick witted gotchas. I’m trying to have a constructive discussion. at any case, it's because I’m working to build an open platform with proper backward compatibility, so please engage seriously rather than trolling.

path: 0 25887751 25887837 25887927 25887970, hotness: undefined, score: -1, children: 5
CallMeAl 5 points a month ago

I’m working to build an open platform...

My bad, why didn't you link your repo from the start? Then we could have a productive discussion about your design docs and the initial code for your new OS.

path: 0 25887751 25887837 25887927 25887970 25888163, hotness: undefined, score: 5, children: 3
Bo7a 1 point 21 days ago

This also isn't a forum for driving engagement to your fucking Reddit post.

path: 0 25887751 25887837 25887927 25887970 26054026, hotness: undefined, score: 1, children: 0
anamethatisnt 9 points a month ago path: 0 25877376, hotness: undefined, score: 9, children: 0
potatoguy 0 points a month ago
path: 0 25878232, hotness: undefined, score: 0, children: 0
linux
linux

@lemmy.world

login for more options
19572
1753
2257

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

go to feed...