Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The solution is very simple: static linking.

Dynamic linking should be completely abolished. This would also solve the "package manger problem" immediately because there will be no dependencies.



I suppose you would then statically link all gpu drivers into your graphical application? And whenever a new gpu or a new driver is released, you will recompile your application. In case a new driver drops support for older cards, you would then include multiple versions of the driver in your binary. Naturally your binary will be several hundred megabytes large. An interesting idea. I was not aware that proprietary drivers even allowed this.


Graphics drivers is one of the rare if not the only pain point with static linking. The reason is that drivers in general should be part of the kernel but GPU drivers are running in userspace. Proprietary blobs, fast evolving hardware and as a result fast changing APIs are to blame.

But on the other hand high level GPU APIs are pretty stable and in general backwards compatible. A program from the year 2000 that only links against OpenGL would still run today (with x86 libs obviously). This means to static link as much as possible still has value.


The deep irony is Windows has achieved its herculean backwards compatibility through dynamic linking.


You get all the failures of static linking, too. Security in underlying statically compiled libs, for example.


Any distros following this philosophy? Apart from solving the constantly breaking packages problem it sounds like it would also have the fastest installs (at the cost of increased disk usage, though perhaps fs-level (block-level) deduplication could offset this?


NixOS is what you're looking for! The Nix package manager can also (theoretically) be used on any distribution to solve this exact problem.


Please no. I'm not made of money and I'm tired of developers treating my disk as free real estate.




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

Search: