操作系统 “为程序 (状态机) 提供执行环境”
可执行文件是一个描述了状态机的初始状态 + 迁移的数据结构
<aside> 📖 寄存器
大部分由 ABI 规定,操作系统负责设置
例如初始的 PC
</aside>
<aside> 📖 地址空间
二进制文件 + ABI 共同决定
例如 argv 和 envp (和其他信息) 的存储
</aside>
其他有用的信息 (例如便于调试和 core dump 的信息)
操作系统代码 (execve) 决定的。
<aside> 📖 例子:操作系统上的可执行文件
需要满足若干条件
RTFM man 2 execve
Binutils - GNU Project - Free Software Foundation
将一个 assembly (机器) 状态映射到 “C 世界” 状态的函数