Hacker News new | past | comments | ask | show | jobs | submit login

As Serge Guelton said in a followup email, one of the reasons that Linux distros use dynamic linking is to reduce the disk usage and bandwidth requirement for updates.

Technically speaking, would it be possible to design a Linux distro so that the installed executables are statically linked but an update for a library doesn't require redownloading large executables for every package that depends on the library?




I think it would be possible, yes. Google has even developed a binary diffing system.

https://www.chromium.org/developers/design-documents/softwar...

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=538339

It would still not be pleasant for disk space. Ideally I want my OS as well as the VMs to be small and require as little ram as possible. I don't want to update my entire OS just because glibc had a critical bug.


Yup: distribute source code. (Step 0 is making compilation not require the world's most powerful gaming rig.)


What about distribute LLVM bitcode?


> As Serge Guelton said in a followup email, one of the reasons that Linux distros use dynamic linking is to reduce the disk usage and bandwidth requirement for updates.

There are a number of ways to solve the latter problem, though: dnf, for example, includes the ability to download only the diff between your installed RPM and the version you're upgrading to.


Absolutely possible, with source distribution. It keeps downloads small, and upgrades (notionally) transparent. The downsides are that it's computationally expensive on the user end, in addition to storage bloat. Does the latest firefox depend on the latest llvm? Depending on how awful your hardware is, you might wait a day for those two packages to build.


I think a distribution similar to Gentoo, where the software is compiled at install time, could do something like this.

(I don't know enough about Gentoo to know if it already does.)


The single number one gripe about Gentoo was how long it took to build packages, closely coupled to the difficulty in keeping a system up-to-date.

In response, Gentoo developed methods to ship binaries for the common cases.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: