Linux
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:
-
Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.
-
Be respectful: Treat fellow community members with respect and courtesy.
-
Quality over quantity: Share informative and thought-provoking content.
-
No spam or self-promotion: Avoid excessive self-promotion or spamming.
-
No NSFW adult content
-
Follow general lemmy guidelines.
view the rest of the comments
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.
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.
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.