[hellogcc] Re: [hellogcc] Re:[hellogcc] Re: [hellogcc] elf文件加载过程

  • From: Triple Yang <triple.yang@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Tue, 6 Nov 2012 13:58:32 +0800

关于section如何构成segment,规范中并无明确指出,所以应该是依赖于链接器的实现。

由于segment与section的分工不同,我不太赞同“segment由属性相同的section构成”这种说法,尽管这样做有它的便利之处。


在 2012年11月6日 下午1:49,horse_rivers <horse_rivers@xxxxxxx>写道:

>
>
> elf文件加载的对象是executable file,以segment为处理单位,即一个segment对应一个内存位置。
> 一个segment由一至多个section构成
>
> 这里的segment是属性相同的section?
>
> 在加载完成后,文件中的逻辑地址会不会再次被修改为加载后的线性地址?
>
>
>
> 在 2012-11-06 13:30:56,"Triple Yang" <triple.yang@xxxxxxxxx> 写道:
>
> elf格式的二进制镜像分为object file和executable file.
>
> elf文件加载的对象是executable file,以segment为处理单位,即一个segment对应一个内存位置。
> 一个segment由一至多个section构成
>
> 在object file中只有section而没有segment。
> 另一方面,executable file中必然有segment,但也允许有section信息
> 直观看起来是,某些数据既属于一个section, 也属于某个segment,或者说,这个section属于该segment.
>
> 建议你看看elf specs: http://refspecs.freestandards.org/elf/elf.pdf
> 以及:http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
>
>
> 在 2012年11月6日 上午9:16,horse_rivers <horse_rivers@xxxxxxx>写道:
>
>> hi,
>>
>>  请教一下elf文件加载的相关细节:
>>    1.elf加载是不是按照section加载,即每一个section加载到一个内存段中。
>>
>>    2.内存中分段管理和section之间有没有关系?
>>
>>
>>  3.elf中的每 一个section有没有加载的地址?
>>
>>
>> 望不吝赐教!祝好!
>>
>>
>>
>>
>
>
> --
> 杨勇勇 (Yang Yongyong)
>
>
>
>


-- 
杨勇勇 (Yang Yongyong)

Other related posts:

  • » [hellogcc] Re: [hellogcc] Re:[hellogcc] Re: [hellogcc] elf文件加载过程 - Triple Yang