ELF 文件

参考:

  • https://blog.csdn.net/daide2012/article/details/73065204

  • https://blog.csdn.net/jackliu16/article/details/79464922

文件格式

ELF (Executable and Linkable Format) 文件,是 Linux 下一直可执行和可链接的文件格式。

如果从链接的角度来看,那么 ELF 文件包含一个文件头 (ELF Header),一个 Section Header Table(表信息头部)——一个用来描述一些列 Segment 的集合,包括数据端,代码段和 BSS段(Block Started by Symbol,通常是指用来存放程序中未初始化的全局变量静态变量的一块内存区域)等等。

如果从执行的角度来看,那么它包含的一个文件头(ELF Header),一个 Program Header Table——用来描述一系列程序运行相关的 Segment 的集合,包括代码段,读写数据端,以及 bss 段等。

简化版

详细版

Linux 执行程序的过程

在 Linux 的 shell 下执行 ./a.out 的语句就可以运行一个程序了,那么其背后原理到底是什么?

实践