后台开发核心技术(三)ELF文件

本文介绍了ELF文件格式在二进制、可执行文件、动态库中的应用,包括其历史发展、文件类型如可重定位目标文件、可执行目标文件和可被共享的目标文件。此外,还详细阐述了ELF的链接视图和执行视图,以及如何使用readelf等工具进行分析。
摘要由CSDN通过智能技术生成

ELF:用于二进制文件,可执行文件,目标代码,共享库,核心转储的标准文件格式。

目标文件发展历程:UNIX从最早的a.out(难以支撑共享库概念)->COFF(引入了段的概念)->ELF(更具扩展性和灵活性)

ELF文件类型

  1. 可重定位的目标文件
    即由汇编器汇编生成的.o文件,链接器将其作为目标文件作为输入 ,链接处理后,生成一个可执行的目标文件或者可被共享的对象文件(.so文件)。可被ar工具archive为.a静态库文件。

    ps 可重定位:将原有的逻辑地址空间定位到物理地址空间上。可重定位的具体介绍

  2. 可执行的目标文件
    Linux中存在两种可执行文件,一种为可执行的脚本文件(Shell),还有一种为可执行的目标文件(bash shell程序,gdb,vi)。此类文件规定了如何利用exec()创建一个程序的进程映像。

  3. 可被共享的目标文件
    动态库文件,即.so文件。动态库发挥作用过程中两个步骤:链接器将它和其它.o文件,.so文件作为输入,经链接处理后生成.so文件或者可执行的目标文件;在运行时,动态链接器拿它和一个可执行的目标文件一起另外.so文件一起处理,创建一个进程映像。

ELF的视图
分为链接视图以及执行视图
链接视图:用于

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值