ELF文件中段(Section)的概念

2018-08-15  本文已影响0人  沙漠中的猴

段(Section)划分

文件段(Section)一般可分为以下几个区域

映射

上面提到的段(Section)的内容在链接成可执行文件时,会分配不同的虚拟内存空间,也就是会映射到段(Segment)内。这个映射关系由段头表(Segment header table)来记录,它是一个结构数组。

root@000d3fada0b3:~/asm# readelf -l hello

Elf file type is EXEC (Executable file)
Entry point 0x4000b0
There are 2 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x00000000000000d5 0x00000000000000d5  R E    0x200000
  LOAD           0x00000000000000d8 0x00000000006000d8 0x00000000006000d8
                 0x000000000000000e 0x000000000000000e  RW     0x200000

 Section to Segment mapping:
  Segment Sections...
   00     .text
   01     .data

上面就是可执行程序中存在的段(Segment header table)。将.text放在第一个Load的内存空间。将.data放在第二个Load的内存空间。

上一篇下一篇

猜你喜欢

热点阅读