什么是可执行文件?
学习操作系统前

学习操作系统后
- 一个操作系统中的对象 (文件)
- 一个字节序列 (我们可以把它当文本编辑)
- 一个描述了状态机初始状态的数据结构
作为 “数据结构” 的可执行文件
状态机初始状态的描述
- 内存中的各段的位置和权限
- 初始的 PC 在 ELF Header 的 entry
- 寄存器和栈由操作系统决定
状态迁移的描述
RTFM: System V ABI
- binutils 中的工具可以让我们查看其中的重要信息
- ChatGPT 可以帮我们解释不明白的概念
加载最小可执行文件
最小可执行文件
- 代码在内存中
- PC 指向第一条指令
- 除此之外,任何初始状态都行
直接把代码 mmap 到内存
- 然后跳转过去即可
- (你可以想象 execve 里就做了这件事)