Seriously though I don't get *nix nerds preoccupation with dynamic linking, things are different than in the fucking 90s.
Storage space is dirt fucking cheap and you could probably make the kernel a bit smarter so it detects when the same sets of symbols get loaded and thus reduce RAM usage and cache misses.
I've heard this argument a few times but has it ever happened in practice? I guess the static lib would need to be marked as read only and page aligned by the compiler/linker so that the OS can see that multiple processes are using the exact same page and combine them
Something like that. I haven't also really seen anybody actually do it, just talk about it I think. Forgot how the technique is called and I'm not able to google it.
Also maybe you wouldn't need to hunt down specific pages of memory but rather just hash all the memory regions marked as executable in the process and just make sure to map them to the same physical memory.
Seriously though I don't get *nix nerds preoccupation with dynamic linking, things are different than in the fucking 90s.
Storage space is dirt fucking cheap and you could probably make the kernel a bit smarter so it detects when the same sets of symbols get loaded and thus reduce RAM usage and cache misses.
deleted by creator
deleted by creator
I've heard this argument a few times but has it ever happened in practice? I guess the static lib would need to be marked as read only and page aligned by the compiler/linker so that the OS can see that multiple processes are using the exact same page and combine them
deleted by creator
Something like that. I haven't also really seen anybody actually do it, just talk about it I think. Forgot how the technique is called and I'm not able to google it.
Also maybe you wouldn't need to hunt down specific pages of memory but rather just hash all the memory regions marked as executable in the process and just make sure to map them to the same physical memory.