对于相同权限的段(section),将他们合并在一起当做一个段来进行映射
Segment > section 但是翻译出来都一样,所以这里索性不翻译了
在谈论 ELF 装载的时候,“段”专门指 Segment,而在其他的情况下,“段”指的是 Section
Section 与 Segment 的差异
- Section(节区):
是链接器的核心操作单元(如
.text
、.data
、.dynamic
等),每个 Section 有明确的功能和权限。- 链接器视角:需要区分
.text
(代码)、.dynamic
(动态链接表)、.plt
(过程链接表)等,因为它们的功能和重定位方式不同 - 权限合并:例如,
.text
(可执行)和.rodata
(只读)可能合并到同一LOAD
段,但链接器仍需单独处理每个 Section
- 链接器视角:需要区分
- Segment(段):
是加载器的操作单元(如
LOAD
、DATA
),仅关注内存权限(如 R/W/X),不关心内部细节- 内存优化:将多个权限相同的 Section 合并到同一 Segment,减少内存页碎片(例如
.text
和.rodata
合并到只读段)
- 内存优化:将多个权限相同的 Section 合并到同一 Segment,减少内存页碎片(例如