重定位技术详解:静态重定位与动态重定位
重定位技术是指在程序执行前或执行过程中,将程序中使用的地址转换为实际物理地址的过程。它主要分为两种类型:静态重定位和动态重定位。
静态重定位是在程序加载到内存之前进行的。在编译链接阶段,程序中的所有地址都转换为绝对地址,并保存在可执行文件中。当程序被加载到内存时,它会直接使用这些绝对地址。
动态重定位是在程序执行过程中进行的。在程序被加载到内存时,它使用的地址仍然是相对地址。只有当程序需要访问某个地址时,操作系统才会根据当前的内存分配情况动态地将相对地址转换为绝对地址。
关于重定位,以下描述是不正确的:
'重定位是把程序中的绝对地址变换为相对地址。'
实际上,重定位是将程序中的相对地址转换为绝对地址,而不是相反。
总结:
- 静态重定位在程序加载前进行,将所有地址转换为绝对地址。
- 动态重定位在程序运行过程中进行,将相对地址动态转换为绝对地址。
- 重定位是将相对地址转换为绝对地址,而不是相反。
原文地址: https://www.cveoy.top/t/topic/oc6A 著作权归作者所有。请勿转载和采集!