CC BY 4.0 (除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~
参考:
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
的语句就可以运行一个程序了,那么其背后原理到底是什么?