当前位置: 技术问答>linux和unix
ELF格式的问题!
来源: 互联网 发布时间:2016-07-21
本文导语: 把ELF格式的文件读入内存 是不是还要根据ELF程序头中的描述 把磁盘中的文件内容读入到指定内存处? 是这样吗? 那么原先的磁盘中的内容就是没有读入到内存中 只读入了ELF头 程序头表 节表? 还是磁盘文件的...
把ELF格式的文件读入内存 是不是还要根据ELF程序头中的描述 把磁盘中的文件内容读入到指定内存处?
是这样吗?
那么原先的磁盘中的内容就是没有读入到内存中 只读入了ELF头 程序头表 节表?
还是磁盘文件的内容读入了内存 后面还要调整?
是这样吗?
那么原先的磁盘中的内容就是没有读入到内存中 只读入了ELF头 程序头表 节表?
还是磁盘文件的内容读入了内存 后面还要调整?
|
是的。ELF的头里面记录了各个section的偏移,大小,执行权限等
当一个ELF的Binary被loader加载到内存中去以后,首先会解析ELF的头,获取到这些信息。然后跳转到
Entry point address所指向的地址开始执行,这个地址也就是程序中执行的第一条指令。
你的描述有点模糊的地方,你所说的“磁盘文件的内容”,是指ELF Binary这个可执行程序,还是指程序运
行过程中读取的其它的文件呢?
当一个ELF的Binary被loader加载到内存中去以后,首先会解析ELF的头,获取到这些信息。然后跳转到
Entry point address所指向的地址开始执行,这个地址也就是程序中执行的第一条指令。
你的描述有点模糊的地方,你所说的“磁盘文件的内容”,是指ELF Binary这个可执行程序,还是指程序运
行过程中读取的其它的文件呢?
|
在ELF文件中放的全是一些指向内存地址的值 ,他没有想TXT文件那样的内容。
|
如果lz说的是ld加载器的功能。ld会分析ELF文件头的信息,找到type属性是LOAD的段(就是进程的text和data段)的数据映射到内存指定的虚拟地址。当然ld还要处理链接库的地址重定向等许多问题,最后会跳转到ELF中记录的程序start开始的拟虚地址开始进程的运行.
|
按你的理解
ELF中不包含真正执行的代码吗?只有指针?
|
楼主牛人呀 搞理论的 交个朋友 我也是从事kernel方面的工作的 平时没多少人能交流