ELF基本结构

本文是《程序员的自我修养——链接、装载与库》的读书笔记,详细介绍了ELF文件的总体结构,包括.bss节、字符串表、符号表和重定位表。ELF文件包含可重定位文件、可执行文件、共享目标文件和核心转储文件等类型,节(Section)存储不同属性的信息。.bss节用于未初始化的全局变量,字符串表集中存储字符串,符号表记录函数和变量的符号信息,重定位表则处理代码和数据的绝对位置引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《程序员的自我修养——链接、装载与库》读书笔记

        编译器编译源代码后产生的文件叫做目标文件。它们经过链接后可以形成库文件或者可执行文件。主流平台的可执行文件格式主要有Windows下的PE(Portable Executable)和Linux下的ELF(Executable Linkable Format),他们都是COFF(Common File Format)的变种。ELF文件标准里面把系统采用ELF格式的文件归为四类:可重定位文件(Relocatable File),可执行文件(Executable File),共享目标文件(Shared Object File)和核心转储文件(Core Dump File)。

1. 总体结构

        可重定位文件(如静态链接库,Linux的.o,Windows的.obj)包含了代码和数据,可以被用来链接生成可执行文件或共享目标文件。可执行文件(如Linux的/bin/bash,Windows的.exe)包含了可以直接执行的程序。共享目标文件(如Linux的.so,Windows的.dll)包含了代码和数据,链接器可以使用这种文件跟其他的可重定位文件和共享目标文件链接,产生新的目标文件;也可以将几个这种共享目标文件与可执行文件结合,作为进程映像的一部分来运行。当进程意外终止时,系统可以将该进程的地址空间的内容及终止时的一些其它信息转储到核心转储文件(Linux下的core dump)。

   &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值