Linux——(16)深入理解程序运行的基石
一、ELF文件格式
我们要真正理解文件的链接,就不得不了解ELF格式文件格式。ELF文件由以下四个部分组成:
ELF头(ELF header)
解释:
这个是描述文件的主要特性,位于文件的开始位置
作用:
定位文件的其他部分。
我们可以使用命令来查看
readelf -h xxx
程序头表(Program header table)
解释:
这个里面列举了所有有效的段(segments)和他们的属性。表里面记录了每个段的开始位置和位移(offer)、长度,毕竟这些段,都是紧密的放在二进制文件里面的。
我们也可以使用以下命令来查看:
readelf -l xxx
节表头(Section header table)
解释:
这里面包含了对节(sections)的描述
我们可以通过以下命令来查看:
readelf -S xxx
节(Section)
解释:ELF文件中的基本组成单位,包含了特定类型的数据。ELF文件的各种信息和数据都存在了不同的节中,比如代码在存储可执行的代码的时候,数据节存储了全局变量和静态数据等。
我们可以通过以下命令来查看:
readelf -x 选项 文件名