动态链接
要解决空间浪费和更新困难这两个问题最简单的办法就是把程序的模块相互分割开来,形成独立的文件,而不再将它们静态地链接在一起。...目前主流的操作系统几乎都支持动态链接这种方式,在 Linux系统中,ELF动态链接文件被称为动态共享对象(DSO, Dynamic Shared objects),简称共享对象,它们一般都是以“so”为扩展名的一些文件...在 Linux中,常用的C语言库的运行库glib,它的动态链接形式的版本保存在“/lib”目录下,文件名叫做“ libc.so”。...动态链接程序运行时地址空间分布
对于静态链接的可执行文件来说,整个进程只有一个文件要被映射,那就是可执行文件本身,我们在前面的章节己经介绍了静态链接下的进程虚拟地址空间的分布。...ProgramI除了使用Lb.so以外,它还用到了动态链接形式的C语言运行库libc-2.61so。另外还有一个很值得关注的共享对象就是ld-2.6so,它实际上是 Linux下的动态链接器。