there isn't a copy of the library in every executable because the linker includes from the library only the functions the program uses (directly or indirectly). this is typically smaller than the whole library. there would be scope for some sharing but the gain dynamically is typically small: not all the executables in /386/bin are in use simultaneously. after all, it's hard to buy a machine with less than 64mbytes these days and with plan 9 running rather a lot of that is free space, unless you've got big memory applications such as ghostscript in which case it's the application rather than the library that consumes the space. i suppose if you'd got an enormous application library shared by several applications in use at once you'd see more need for library sharing. in plan 9, that shared functionality might be better represented as a file server (though not always). dynamic linking might be of more interest (in Plan 9) for selection amongst a set of implementations at run-time.