gpt4 book ai didi

exe - 目标文件/可执行文件 : What's the difference between a segment and a section?

转载 作者:行者123 更新时间:2023-12-04 13:03:03 25 4
gpt4 key购买 nike

在引用目标文件/可执行文件时,我对“段”和“节”之间是否存在差异感到困惑。

根据 https://en.wikipedia.org/wiki/Object_file :

Most object file formats are structured as separate sections of data, each section containing a certain type of data.



然而,文章后来继续谈论 (例如代码段、数据段等)。

此外,PE 文件格式(Windows 中的 .exe/.dll/.coff)将这些不同的部分称为 栏目 ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms680547(v=vs.85).aspx )。

所以我的问题是:两者之间有区别还是实际上是同义词?

最佳答案

术语可能取决于特定的目标文件格式,但通常一个段是比段更细粒度的代码或数据“块”,因为段可能由多个段组成。

例如,PE/COFF standard document没有段的概念——只有段,而 ELF object format两者都有。在 ELF 的情况下,目标文件中的段类似于 CPU 或指令集架构(例如 x86)上下文中的段——也就是说,段是内存的某个连续分区,具有一组特定的与其关联的内存访问权限(或类似权限)。典型的例子是可执行的“代码段”与不可执行的“数据段”。

另一方面,节更多地与代码或数据在目标文件中的逻辑组织方式有关。例如,导出符号表可能存储在与应用程序在执行期间访问的数据分开的部分中,尽管两者都被视为数据。

如果目标文件格式具有段和段的概念,则每个段通常完全包含在单个段中(至少 ELF 是这种情况)。

关于exe - 目标文件/可执行文件 : What's the difference between a segment and a section?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49718576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com