
上QQ阅读APP看书,第一时间看更新
4.2 ELF文件格式介绍
如前述内容可知,ELF是Executable and Linkable Format的缩写。其名称中的“Executable”和“Linkable”表明ELF文件有两种重要的特性。
·Executable:可执行。ELF文件将参与程序的执行(Execution)工作。包括二进制程序的运行以及动态库.so文件的加载。
·Linkable:可链接。ELF文件是编译链接工作的重要参与者。
下面来看ELF文件格式的内容,如图4-1所示。

图4-1 ELF文件格式
图4-1表明,我们从不同角度(View)来观察ELF的话,将会看到不同的信息。
·Linking View:链接视图,它是从编译链接的角度来观察一个ELF文件应该包含什么内容。
·Execution View:执行视图,它是从执行的角度(可执行文件或动态库文件)来观察一个ELF文件应该包含什么信息。
不过,不论从哪个角度看,ELF文件都包含一个ELF文件头结构,先来介绍它。