上一篇文章介绍了进程的基本概念:
这篇继续进程相关内容的学习。
进程和程序
进程是一个执行中程序的实例,那么进程和程序之间到底有什么区别呢?
可执行程序
程序是包含了一系列信息的可执行文件,这些信息描述了如何在运行时创建一个进程。在 Linux 中,其可执行文件的存储格式为 ELF(Executable Linkable Format)。文件内包含的内容如下:
- 二进制格式标识。每个程序文件都包含用于描述可执行文件格式的元信息。内核利用这个信息来解释文件中的其他信息。
- 机器语言指令。机器能识别并执行的机器码。
- 程序入口地址。标识程序开始执行时的起始指令位置。
- 数据。变量初始值以及程序使用的常量值。
- 符号表以及重定位表。描述程序中函数和变量的位置及名称。
- 共享库和动态链接信息。程序运行时需要使用的共享库,以及动态链接器(用于加载共享库)的路径名称。
- 其他信息。用于描述如何创建一个进程。
通过 file 指令可以查看文件类型信