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文件

猜你喜欢

转载自www.cnblogs.com/yangjiguang/p/9185174.html