- 9
- 0
- 约2.18万字
- 约 18页
- 2019-02-01 发布于福建
- 举报
ELF 文件格式学习
Daniel Wood
转载时请注明出处和作者
文章出处:
作者:Daniel Wood
写在前面的话:
在阅读TCP/IP 相关书籍的时候遇到ELF 文件格式(ELF和TCP/IP 无直接关
系),所以查阅了网上很多这方面的资料,现在整理成篇,方便自己以后review。
如果你是 ELF 的高手,那么你可以跳过了,如果你和我一样,对 ELF 文件
格式一窍不通,或者你还未曾听说过这种格式(虽然你在平时工作中已经接触了
很多这种格式的文件),那么你也许可以看看这篇基础的文章。如果你确实无聊
的话,可以动手实践一下。
参考文献:
[1] Executable and Linkable Format (ELF).pdf
[2] 结合实例解读ELF 文件-阅读笔记bkbll(bkbll@, kbll@)
[3] About ELF
[4]
[5]
自UNIX 系统实验室(USL)开发和发布了Executable and linking Format(ELF)这
样的二进制格式以后,在*nix 系统上ELF 就取代了out 可执行文件格式,成为了主
要的目标文件格式。
注:这里的目标文件是指 (可暂时理解为)gcc 用–c,-o,-shared 所产生的.o,可执行(默
认是a.out),.so 文件。
1. ELF 文件类型
目标文件(也就是ELF 文件)格式主要三种:
Page 1 of 18
可重定向文件(Relocatable file ):文件保存着代码和适当的数据,用来和
其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。由
编译器和汇编器生成,将由链接器处理。
可执行文件(Executable File ):文件保存着一个用来执行的程序;该文件
指出了 exec(BA_OS)如何来创建程序进程映象。所有重定向和符号都解析
完成了,如果存在共享库的链接,那么将在运行时解析。
共享目标文件(Shared object file ):就是所谓的共享库。文件保存着代码和
合适的数据,用来被下面的两个链接器链接。第一个是连接编辑器[请参
看 ld(SD_CMD)] ,可以和其他的可重定向和共享目标文件来创建其他的目
标文件。第二个是动态链接器,联合一个可执行文件和其他的共享目标文
件来创建一个进程映象。包含链接时所需的符号信息和运行时所需的代
码。
下面用实例来了解这三种ELF 文件。
代码hello.c
#include stdio.h
int main()
{
printf(Hello World\n);
return 0;
}
用gcc 编译hello.c 文件
编译环境:
$ uname -a
Linux ubuntu804 2.6.24-26-generic #1 SMP Tue Dec 1 18:37:31 UTC 2009 i686
GNU/Linux
$ gcc --version
gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
Page 2 of 18
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
1)编译重定向文件:
$ gcc -c hello.c
$file hello.o
hello.o: ELF 32-bit LSB relocatable, Intel 80386
您可能关注的文档
- Allies_of_Humanity_Book_1英文电子资料.pdf
- An approximation algorithm for max k-uncut with capacity constraints英文电子资料.pdf
- Approximation Algorithms for k-Hurdle Problems英文电子资料.pdf
- Approximation Algorithms for Minimum K-cut 7英文电子资料.pdf
- Approximation Algorithms for Min-k-overlap英文电子资料.pdf
- Architecture Modeling Using Visual Studio 2010英文电子资料.pdf
- Carey_-_Empires_of_Religion_2008英文电子资料.pdf
- CL31 data format英文电子资料.pdf
- Diffusion_of_Innovations英文电子资料.pdf
- Evonik product innovations to reduce Tire RR英文电子资料.pdf
原创力文档

文档评论(0)