I am trying to figure out the implications of a distribution where static binaries are preferred over shared ones. For that purpose, I put together a small Scala shell script that 1) traverses /bin
, /sbin
, /usr/bin
, /usr/sbin
directories, 2) locates non-symlink executables, and 3) sums the file size of the libraries listed by ldd
. Is this a feasible approach to compute the extra space that would be needed?
Further, besides extra disk space consumption, what would be the runtime memory usage implications? That is, binaries compiled against the same shared library will let the kernel to instantiate the shared library just once at runtime. In case of static binaries, each binary will need to reserve extra memory for the very same library. With enough swap space, would still that be a problem? (After all, isn't that how most of the user-space Windows applications run?) Are there any other potential implications that I might be missing?