Adi*_*tia 5 process loading shared-libraries libc
我想了解Libc如何在内存中加载共享库并在进程间共享?是否有一个libc实例加载到内存中并在所有进程之间共享,或者每个进程的内存中是每个libc实例.我不清楚libc如何在进程之间共享.
谢谢Aditya
libc的一个实例在所有进程之间共享.请参阅"共享库和动态加载的内幕故事"文章:
具体来说,因为库主要由可执行指令组成,并且该代码通常不是自修改的,所以操作系统可以安排将库代码放置在进程之间共享的只读存储器区域中(使用页面共享和其他虚拟存储器技术).因此,如果正在运行数百个程序并且每个程序包含相同的库,则操作系统可以将库指令的单个共享副本加载到物理内存中.这减少了内存使用并提高了系统性能.
另请参阅"解析共享库"一文.
| 归档时间: | 
 | 
| 查看次数: | 3429 次 | 
| 最近记录: |