[Linux-aus] contest proposal

Russell Stuart russell at stuart.id.au
Tue Jan 2 11:23:27 AEDT 2024


On 2/1/24 09:18, jon.maddog.hall--- via linux-aus wrote:
> The DEC OSF/1 Alpha system reduced from 64 MBytes to 32 MBytes 
> actually benchmarked as 7% FASTER than before all this work was 
> done.

This rings true, but nonetheless attempts to save on code size are
swimming against the tide today.  We seem to be in the process of
abandoning sharing code in libraries via DLL's.

I think this was popularised by Google, when they statically linked
their binaries.  It makes a lot of sense in an environment when you give
each task it's own isolated VPS, each VPS sharing the same kernel.  Its
easier (and in my experience more robust) than sharing a docker container.

It's now moving into our languages.  The increased CPU speed has allowed
the rise of interpreted languages.  They are not only slow CPU wise,
multiple web pages in a browser generally means multiple copies of the
shared javascript libraries.  Newer compiled languages like Go, Swift
and Rust all favour statically compiled binaries.  Rust in particular is
wedded to it because of it's love of monomorphization.

Gradually these new languages are worming their way onto out Desktop
machines.  But unlike Google's VPS's, I'm pretty sure statically linked
binaries are a net negative there.  It's not only bloat (think: every
program contains it's own copy of libc).  It's when a bug is found in
libc, the distro has to recompile and redistribute every binary that
uses it.  Security updates become more like what you see on phones:
gigabytes, every time.

Maybe that's possible.  But when every program was forced to share one
libc, it meant there was one version of libc on the system.  When that
isn't enforced programmers tend to believe it's their right to depend on
a particular version of every library they use.  We see the attitude in
most prominently in Javascript, but Rust's beautifully crafted
versioning system encourages the same thing.  But from a distro's point
of view this is a disaster.  Instead of tracking security flaws in one
version of a library, they now have to track them in every version of
the library from the year dot.  I doubt that is possible.

So this change to "memory's so cheap I can treat it as free" ends up
impacting a lot more than just the memory, speed, and power consumption.


More information about the linux-aus mailing list