有粉丝对 0x0 ~ 0x80000000 的地址空间存在疑问,认为 0x0 以上是外设程序?
0x80000000 -> |-------------| - (KERNBASE) | Heap | ^ | | | | | v | | | ... | | | | |-------------| User Space | ... | | ^ | | | | | | User stack | | |-------------| | | | | | User | | | Text & Data | v 0x0 -> |-------------| -
我这边理解可能架构没有对齐问题
- 因为 ta 参考的是 riscv 架构,和 i386 可能存在差异
- 如果 BIOS 代码中断向量和一些 BIOS 处理流程我这边可以粗略地认为是用户代码
- 实际的用户程序通过加载到内存精确地说肯定不是从 0x0 开始,应该可以使用下面命令 验证一下
readelf -l ./lab/09-linux-syscall/forkme.out | grep Entry
Entry point 0x1120
视频顺序采用三段式来编码,具体含义如下
xyz-描述 ^`` | ` `- 番外号, z := null|a|b|c | | | +--- 节编号, y := 1|2|3|... | +----- 章编号, z := 0|1|2|...
最终结果是视频会根据字典序来排布