ELF文件格式有三种主要类型:可执行文件、可重定向文件和共享库。
1 .可执行文件(APP应用)可执行文件包含代码和数据,是可以直接执行的程序。
2 .可重定向文件(*.o )可重定向文件也称为目标文件,包含连接到其他重定向文件或共享的object文件时使用的代码和数据。
*.o文件参与程序的连接(创建程序)和程序的运行)提供了一种方便有效的并行查看文件内容的方法。 这些*.o文件的活动可以反映各种各样的需求。
在Linux上,使用gcc -c编译源文件时可以将其编译为*.o格式。
3 .共享文件(*.so )也称为动态库文件,包含连接时连接器ld和运行时动态连接器所使用的代码和数据。 动态连接器可以是ld.so.1、libc.so.1或
ld-linux.so.1。 在我的CentOS6.0系统上,此文件为/lib/ld-2.12.so
从连接器(Linker )的观点来看,一个ELF文件是几个节的集合; 从程序加载器的角度看,它是几个段的集合。 ELF格式的程序和共享库具有相同的结构,但段的集合和节的集合稍有不同。