程序的加载和运行
- 静态程序 –> 二进制文件
- 头部
- 代码区1
- 代码区2
- 数据区1
- 数据区2
- 共享库 –> 二进制文件
- 解释器
- lib1.so
- lib2.so
- 动态进程 –> 虚拟内存
- 代码
- 代码区1
- 代码区2
- 数据
- 数据区1
- 数据区2
- 堆
- 内存映射区域(重定位)
- 跳转到入口点
- 代码
- 数据
- 解释器(链接、加载)
- lib1.so
- lib2.so
- 栈
- 环境
- 参数
- 内核
- 代码
- 二进制文件
- Linux –> ELF
- Windows –> PE
- 解释器
- Linux –> ld-linux.so
- Windows –> ntdll.dll