作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在引用目标文件/可执行文件时,我对“段”和“节”之间是否存在差异感到困惑。
根据 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/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/
我是一名优秀的程序员,十分优秀!