问题:什么是真正的共享?
回答:一份代码放之四海皆可用;说人话就是一个SO的代码段被加载到内存中后,依赖该SO的进程只要把SO的代码对应的物理页映射到自己的虚拟地址空间中就可以直接访问使用了,也就是所有的进程都共享一份存放了SO代码的物理内存,而不是每个进程都有一份代码副本(太浪费物理内存)
问题:怎么情况下进程才需要单独拷贝一份SO的代码给自己用?
回答:SO在编译的时候,生成的指令代码中使用了绝对地址寻址模式,这种情况下符号只能放在这个绝对地址上才能被访问到(说人话举例子呢?),编译链接过程中我们就叫这些地址为编译地址好了,总之