Libc共享库如何加载到内存中并在进程之间共享?

| 我想了解Libc共享库如何加载到内存中并在进程之间共享?是否在内存中加载了一个libc实例并在所有进程之间共享?或者是每个进程在内存中的每个libc实例。我不清楚进程之间如何共享libc。 谢谢 阿迪亚     
已邀请:
libc的一个实例在所有进程之间共享。请参阅“共享库和动态加载的内幕故事”。   具体来说,由于库主要由可执行指令组成,并且此代码通常不会自行修改,因此操作系统可以安排将库代码放置在进程之间共享的只读存储区中(使用页面共享和其他虚拟存储技术)。因此,如果正在运行数百个程序,并且每个程序都包含相同的库,则操作系统可以将库指令的单个共享副本加载到物理内存中。这样可以减少内存使用并提高系统性能。 另请参见“剖析共享库”。     

要回复问题请先登录注册