对于相同权限的段(section),将他们合并在一起当做一个段来进行映射

Segment > section 但是翻译出来都一样,所以这里索性不翻译了

在谈论 ELF 装载的时候,“段”专门指 Segment,而在其他的情况下,“段”指的是 Section


Section 与 Segment 的差异

  • Section(节区): 是链接器的核心操作单元(如 .text.data.dynamic 等),每个 Section 有明确的功能和权限
    • 链接器视角:需要区分 .text(代码)、.dynamic(动态链接表)、.plt(过程链接表)等,因为它们的功能和重定位方式不同
    • 权限合并:例如,.text(可执行)和 .rodata(只读)可能合并到同一 LOAD 段,但链接器仍需单独处理每个 Section
  • Segment(段): 是加载器的操作单元(如 LOADDATA),仅关注内存权限(如 R/W/X),不关心内部细节
    • 内存优化:将多个权限相同的 Section 合并到同一 Segment,减少内存页碎片(例如 .text.rodata 合并到只读段)