当前位置:  技术问答>linux和unix

可执行文件装载到进程地址空间时,是如何重定位的

    来源: 互联网  发布时间:2016-08-29

    本文导语:  可执行文件调用了动态库so中的某个函数,在编译和链接时,可执行文件并不能够知道这个函数的地址,所以只能留下一个重定位符号,好在加载的时候,再确定其地址 小弟想不明白的是,既然可执行文件不用pic技术...

可执行文件调用了动态库so中的某个函数,在编译和链接时,可执行文件并不能够知道这个函数的地址,所以只能留下一个重定位符号,好在加载的时候,再确定其地址
小弟想不明白的是,既然可执行文件不用pic技术,同时,可执行文件的代码段又是只读,那到底是使用了什么方法,使得在装载整个程序的时候,可以对可执行文件的代码段进行重定位
望赐教

|
有个动态链接器,ld

|
修改的应该是symbol section,而不是text section.
http://linux.chinaunix.net/techdoc/system/2007/12/13/974289.shtml

|
恭喜你,步入高级程序员行列,呵呵

|


用内存管理的功能,mm里的东西和pdg建立映射

    
 
 

您可能感兴趣的文章:

  • java程序执行时,引用类何时装载?
  • 请问,如何装载mssql的jdbc的驱动程序和设置java执行程序时的参数。
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • 如何在程序中执行另外一个程序,并且当前进程依然执行?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • 在shell命令行中敲一个可执行文件,起一个进程pc,这个进程属于shell进程
  • linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(在线)?
  • 父进程sleep(10) 秒,但不需要子进程执行这句代码,怎么办,求大虾指导
  • 在unix下面,执行tbinit进程可以启动OnLine,怎么才能执行tbinit啊?
  • 关于子进程的执行
  • 如何获得子进程的执行时间
  • fork() 父子进程执行顺序问题
  • 各位前辈,当代码执行一个系统调用fork()后,为什么如果共享页设置了写时拷贝位,在父进程之前调度子进程将具有优越性?内核如何能使子进
  • 如何取得进程执行时间?
  • 进程定时执行问题
  • POPEN后如何知道哪个是父进程执行的结果
  • linux c 获得当前进程的进程名和执行路径(示例)
  • 执行一个main函数程序时,unix操作系统调用什么创建进程?fork?newproc?
  • 进程执行问题
  • 技术文章 iis7站长之家
  • linux 中用fork创建子进程后,用exec执行自己的程序的问题
  • 大虾们帮个忙吧。linux下可否有类似WaitForSingleObject的等待进程执行完毕的函数呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • linux下通过crond实现自动执行程序
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 请问:我发现如果在/usr/local/bin 与/usr/bin下都有同一个执行文件时,当在shell下执行时,只会执行/usr/local/bin,下的,怎么改过来?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • linux下不使用sudo命令执行docker的操作步骤
  • 我在UNIX下用PRO*C写了个程序,每次执行都得一个多小时,我想把它放到后台执行,也就是我想交给服务器执行,而我想产掉终端窗口,应该怎么做呢
  • Mysql Select查询执行流程介绍及实例
  • 怎样执行可执行文件?
  • redhat7.1下可执行文件不能执行????
  • C中用system系统调用执行command,执行过程中死锁,如何处理?
  • 在B shell里怎麽执行曾经执行过的命令
  • 请问JSP中的<jsp:forward page=""/>执行后,后边的操作还会执行吗?
  • 执行当前目录下可执行程序时前面必须要加上./才可以,如何解决?
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • linux在脚本执行命令和直接在命令行执行命令有什么区别


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3