为什么精灵细分不对页?

时间:2012-11-21 13:26:36

标签: elf

readelf -l /bin/ls

  LOAD           0x000000 0x08048000 0x08048000 0x18ff8 0x18ff8 R E 0x1000
  LOAD           0x019eec 0x08061eec 0x08061eec 0x003f4 0x01014 RW  0x1000

因此,两个段之间的边界页面是只读的和可读写的,这怎么可能?

1 个答案:

答案 0 :(得分:2)

假设页面大小为4096(0x1000)字节并将地址舍入为页面粒度:

  • 第一个可加载段将使用地址范围[0x8048000--0x8060FFF],两端都包括在内。
  • 第二个可加载段将使用地址范围[0x8061000--0x8062FFF],其中从地址0x8061EEC开始的0x3F4字节将来自可执行文件,其余部分在加载时被填零。

没有重叠。