【发布时间】:2012-05-16 02:18:45
【问题描述】:
共享库是共享的,因为它们是从磁盘上的同一个文件加载的,还是共享的,因为它们被加载到内存中一次,每个人都共享同一块内存?在 Linux 中,它们是否被加载一次并几乎映射到每个进程空间?这是如何工作的?
编辑:当我说共享时,我想我的意思是动态链接,但如果有区别,请告诉我。
【问题讨论】:
共享库是共享的,因为它们是从磁盘上的同一个文件加载的,还是共享的,因为它们被加载到内存中一次,每个人都共享同一块内存?在 Linux 中,它们是否被加载一次并几乎映射到每个进程空间?这是如何工作的?
编辑:当我说共享时,我想我的意思是动态链接,但如果有区别,请告诉我。
【问题讨论】:
通常是后者(尽管$LD_PRELOAD 改变了这一点;有关详细信息,请参阅ld.so(8) 手册页的环境 部分)。 CPU TLB 用于将库的页面映射到应用程序的进程空间。
【讨论】: