Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Interesting article!
My takeaways:
>"The current solutions involve packaging entire alternate runtimes in containerized environments. Flatpak, Snap, AppImage, Docker, and Steam: these all provide an app packaging mechanism that replaces most or all of the system’s runtime libraries, and they now all use containerization to accomplish this."
[...]
>"All of these technologies are essentially building
an entire OS on top of another OS
just to avoid the challenges of backwards compatibility."
This is basically using containers to replace all system libraries -- to insure that a downloaded binary app always works.
From this point forward, we'll use the term "API" to represent not just Linux kernel syscalls, but the totality of all library calls (system and otherwise!) used by a given downloaded binary application!
Observation: API (in-)consistency (AKA "Stability") one Linux version to another, one Linux distro to another -- is the real problem!
That's the real cause!
Because everything else, everything else, is effect, not cause!
The containerization, the bloated "everything but the kitchen sink" downloads, are the effect of the problem of API (in-)consistency!
Phrased a simpler way -- there is absolutely NO guarantee of consistency between the libraries, system and otherwise, of any two Linux distros!
So if a binary app is to run on all Linux distros -- then it had better damn well better make sure that the exact specific version of all of the libraries that it needs -- are managed by it, not the host operating system!
Containers and bloated library downloads -- are (unfortunately) currently necessary to provide this!
Related:
"Linux Library Mismatch":
https://www.google.com/search?q=linux+library+mismatch
"DLL Hell" (the MS-Windows equivalent)
https://en.wikipedia.org/wiki/DLL_Hell
Software Engineering: Bertrand Meyer, "Design By Contract":
https://en.wikipedia.org/wiki/Design_by_contract
API Contracts: "What is an API Contract?":
https://www.youtube.com/watch?v=-qM__ozdHCU
Eelcho Dolstra: "The Purely Functional Software Deployment Model":
https://edolstra.github.io/pubs/phd-thesis.pdf#page=11
Image-based Linux distributions and associated tools:
https://github.com/castrojo/awesome-immutable
Spencer Baugh: "Managing Dependencies":
https://catern.com/posts/deps.html
Related posts
- Hello everyone!
- A list of resources for people who want to investigate image-based Linux desktops
- Immutable image-based Linux desktops
- Hi, i installed the Fedora 37 Silverblue (Gnome) But DNF and YUM commands dont even exist there. what i made?
- What is best Distro/DE combo for productivity on ML Workstation