ELF - Executable and Linkable Format(可执行和可链接文件格式)

本文介绍了ELF(Executable and Linkable Format)文件格式,它用于二进制文件、可执行文件、目标代码和共享库。通过分析ELF文件,可以深入了解程序的编译、链接、加载和运行。内容包括ELF文件类型,如可重定位文件、可执行文件和共享目标文件,以及ELF文件的组成部分:ELF头、程序头表、节头表和节。此外,还讨论了位置无关代码(PIC)和全局偏移量表(GOT)在动态链接中的作用。
摘要由CSDN通过智能技术生成
在计算机科学中,ELF是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。常用扩展名有o,so,elf,prx。分析ELF文件有助于理解一些重要的系统概念,例如程序的编译和链接,程序的加载和运行等。

核心转储是指: 操作系统在进程收到某些信号而终止时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试。

ELF文件类型

  1. 可重定位文件:用户和其他目标文件一起创建可执行文件或者共享目标文件,例如lib*.a文件。
  2. 可执行文件:用于生成进程映像,载入内存执行,例如编译好的可执行文件a.out。
  3. 共享目标文件:用于和其他共享目标文件或者可重定位文件一起生成elf目标文件或者和执行文件一起创建进程映像,例如lib*.so文件,是一种特殊的可重定位文件。

ELF文件作用

  1. 参与程序的编译和链接(可重定位文件),建立一个程序。编译器和链接器将把elf文件看作是节头表描述的节的集合,程序头表可选。
  2. 参与程序的执行(可执行文件),运行一个程序。加载器则将把elf文件看作是程序头表描述的段的集合,一个段可能包含多个节,节头表可选。
  3. 如果是共享文件,则两者都含有。

ELF文件组成部分

  1. ELF头(ELF header)
    在程序的开始部位,作为引路表描述整个ELF的文件结构,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值