linux系统装载ELF过程

参考:程序员的自我修养

fork
    -->execve()
        //----kenerl space---------------
        sys_execve()  /*arch\i386\kernel\process*/
            -->do_execve
                -->1.根据名字查找可执行文件
                -->2.读前128bytes,判断格式,search_binary_handle()
                -->3.load_elf_binary (fs\binfmt_elf.c)
                    -->elf文件有效性检测
                    -->寻找interp段,设置动态链接路径
                    -->根据elf程序头表映射
                    -->初始化elf环境
                    -->修改系统调用返回地址为elf可执行文件入口
                -->return
        //----user space---------------
        -->执行指定的elf文件

 

posted @ 2018-06-14 22:04  bluebluebluesky  阅读(431)  评论(0编辑  收藏  举报