|
|
Log in / Subscribe / Register

Shared libraries

Shared libraries

Posted Dec 5, 2025 3:42 UTC (Fri) by dvdeug (subscriber, #10998)
In reply to: Shared libraries by khim
Parent article: APT Rust requirement raises questions

> The critical difference between distro's “steaming pile of packages” and proper OS is an SDK: something that you can use to build your binary and, most importantly, target different versions of OS simultaneously.

It's relatively easy to do that on Windows, as Microsoft controls all the systems. It's not so easy to do that with Linux or *BSD, as there's multiple different forks you have to deal with. Flatpaks ultimately do what Windows does; ship all dynamic libraries with the program. I don't see any reason you don't accept that you can do that with a flatpak.

(Note that most people don't distribute native binaries for Android; the system compiles the APK into a native format. There are a bunch of "binary" formats that may or may not take an installation step, that you can run on different versions of Linux, ranging from well-designed compiled code to any number of interpreters to APKs and JARs. RenPY programmers distribute one binary package for Windows and Linux all the time.)

None of those are proper OSes; a proper OS has no users so there are no problems. Real systems have problems and make compromises. Distributing the same binary to versions of Linux from many times, from many vendors was not one of the driving goals behind Linux, so the compromises it demands weren't made. Note that Windows binaries, include ones built from post-2010 .NET, don't generally run across architectures; ARM Windows will emulate x86 binaries, but the x86-64 emulator is a lot more fragile and experimental, and x86-64 Windows won't run ARM Windows binaries.

So, yes, Linux can do it, using flatpaks or other options, no, Windows can't do it if you want to use a modern Windows SDK and target both ARM Windows and x86 Windows at the same time.


to post comments

Shared libraries

Posted Dec 5, 2025 9:28 UTC (Fri) by taladar (subscriber, #68407) [Link]

If you really want to you can emulate Linux binaries from other architectures relatively transparently using qemu-user and binfmt_misc. Of course you still need a full set of libraries for them just as you would if you ran the code on that platform. Mostly it is useful for things like chroots with mounted SD-Cards for low power embedded devices where the emulation on your PC is still much faster and has more RAM available to compile stuff.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds