当前位置: 技术问答>linux和unix
可执行文件装载到进程地址空间时,是如何重定位的
来源: 互联网 发布时间:2016-08-29
本文导语: 可执行文件调用了动态库so中的某个函数,在编译和链接时,可执行文件并不能够知道这个函数的地址,所以只能留下一个重定位符号,好在加载的时候,再确定其地址 小弟想不明白的是,既然可执行文件不用pic技术...
可执行文件调用了动态库so中的某个函数,在编译和链接时,可执行文件并不能够知道这个函数的地址,所以只能留下一个重定位符号,好在加载的时候,再确定其地址
小弟想不明白的是,既然可执行文件不用pic技术,同时,可执行文件的代码段又是只读,那到底是使用了什么方法,使得在装载整个程序的时候,可以对可执行文件的代码段进行重定位
望赐教
小弟想不明白的是,既然可执行文件不用pic技术,同时,可执行文件的代码段又是只读,那到底是使用了什么方法,使得在装载整个程序的时候,可以对可执行文件的代码段进行重定位
望赐教
|
有个动态链接器,ld
|
修改的应该是symbol section,而不是text section.
http://linux.chinaunix.net/techdoc/system/2007/12/13/974289.shtml
http://linux.chinaunix.net/techdoc/system/2007/12/13/974289.shtml
|
恭喜你,步入高级程序员行列,呵呵
|
用内存管理的功能,mm里的东西和pdg建立映射