Even when the processes are loading the libraries from different paths, in different filesystems, in different containers? How does it page in data on demand if the first container that loaded the library is killed and its filesystem unloaded?
It's not easy to share libraries across containers, unless they can be built to share a base layer in a stacked union filesystem approach.
>Even when the processes are loading the libraries from different paths,
Well, in my original post (GGGP) I've defined "a library" as "a .so file" so what I can say is that the 872 distinct .so files used on my laptop will be shared among the different processes that use them.
If you assume the same library can be duplicated in two different .so files, then 872 is just an upper bound on the number of distinct libraries and further sharing could be done.
Eitherway, that is a significant amount of code sharing, which was the original question in this thread.
It's not easy to share libraries across containers, unless they can be built to share a base layer in a stacked union filesystem approach.