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.
At least skip the Reddit link and post the source…
https://parallel-minds0.github.io/An-Open-Letter-on-Linux-Compatibility/
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?
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.
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.
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.
Isn’t package management “solved” by nix?
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.
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.
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.
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.
That’s not what I’m saying. I’m saying you’re jumping to conclusions too quickly.
I had a long discussion about this yesterday, so I didn’t want to repeat the same arguments all over again. At this point, it feels like I’m encountering the same arguments across different platforms.
Maybe I should add a Q&A section to the article to clarify my points. Many people have raised interesting perspectives, not because I haven’t considered them, but because I have a particular viewpoint that I didn’t fully explain in the article itself.
EDIT: at any case, to engage with your points: To you, these problems are solved, or nonexistent because you are comfortable using Linux in this specific way. but it is not ready as it is for the wider world outside of the people who are comfortable with the existing levels of compatibility it offers, which isn’t much compared to Windows. Also, I am not just offering better compatibility, but a better packaging and distribution model as well. and an over all more polished experience, though the latter wasn’t explicitly mentioned in the article, it is implicit.
At this point, it feels like I’m encountering the same arguments across different platforms.
If many people from different places are giving you similar feedback, maybe you need to reflect on that feedback, rather than just posting it somewhere else hoping for a different answer.
You are an idiot. I’ve met some people who have been more than interested to discuss this thing and actually go forward with it. You don’t even understand what you’re reading or what this content is about. Because if you did, and if you did have actual opinions of your own you would post them here rather than signal your conformist mindset.
Do you realize how embarrassing you sound?
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.
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.
You’re playing a bit of a fool. I’m talking about this: https://x.com/Plagman2/status/1559683905904463873 and the many examples I’ve personally seen of random “contributors” removing clearly critical infrastructure from glibc.
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.
It isn’t a rare example. That “one example” (which isn’t even accurate) represents one example too many, first of all. Look at the contribution history yourself: you’ll find many cases where changes broke things because the affected code was 7–10 years old.
There’s a reason Windows maintains near-total backward compatibility: a ten-year-old line of code may still be performing essential work, and there’s no inherent need to remove it. Your standards for what qualifies as acceptable deprecation are subjective, but the broader world expects software to maintain compatibility for decades.
deleted by creator
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.
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)
I am not talking about the kernel. and the userspace of either platform is nowhere near as strong as it is on Windows.
Since it has what you want, why don’t you use Windows in that case?
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.
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.
I’m clearly advocating for an open platform with compatibility in the article.
I read every word of your screed. You are advocating for an Easy Button. You don’t have any details how it will work or why, you just want everyone else to change how they do things to your vague and unspecified plan for an Easy Button.
The purpose of the article was never to explain the exact operation in detail. It isn’t a blueprint; it’s an advocacy paper. Please don’t read more into my words than I intended. I’m not asking anyone to change anything. I’m inviting people to contribute ideas and help build this project voluntarily, according to their own interests and preferences. Clearly, this isn’t for you.
This also isn’t a forum for driving engagement to your fucking Reddit post.
The reddit link is a link to https://parallel-minds0.github.io/An-Open-Letter-on-Linux-Compatibility/
deleted by creator




