Libc如何共享库加载到内存中并在进程之间共享? [英] How Libc shared library loaded in memory and shared amongst processes?

查看:18
本文介绍了Libc如何共享库加载到内存中并在进程之间共享?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想了解Libc如何共享库加载到内存中并在进程之间共享?是否有一个加载到内存中并在所有进程之间共享的libc实例,或者是每个进程的内存中的每个libc实例。我不清楚如何在进程之间共享libc。

谢谢 Aditya

libc

推荐答案的一个实例在所有进程之间共享。参见"The Inside Story On Shared Libraries And Dynamic Loading"文章:

具体地说,由于库主要由可执行指令组成,并且此代码通常不是自修改的,因此操作系统可以安排将库代码放置在进程之间共享的只读内存区域中(使用页面共享和其他虚拟内存技术)。因此,如果数百个程序正在运行,并且每个程序包含相同的库,则操作系统可以将库指令的单个共享副本加载到物理内存中。这减少了内存使用并提高了系统性能。

另请参阅"Dissecting shared libraries"文章。

这篇关于Libc如何共享库加载到内存中并在进程之间共享?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆