链接与重定位
逻辑地址空间
引入
如果没有引入抽象的逻辑地址空间,直接使用物理地址,那么,没有重定位操作势必破坏系统和其他应用的内存,如果实现重定位,其实现复杂(每次运行都需要重新编译进行重定位),浪费时间,所以需要新增一层在程序和实际物理地址之间,这一层就是逻辑地址空间,这样只需要建立逻辑地址到物理地址的映射即可,不需要每次都修改文件.
辨别
- 物理地址:
- 内存中一系列存储信息的物理地址的集合
- 逻辑地址
- 对内存空间的抽象
- 是一个进程用来范文内存的一组地址
- 静态链接:在编译阶段把静态库复制加入到可执行文件中,导致可执行文件较大.
- 动态链接:假装链接完毕,其实只是加入了描述信息,等到执行到这里的时候去访问相应动态库载入内存执行.