linux - ELF和内存中的段有什么区别

标签 linux memory elf segment

在ELf加载中使用段的概念,在内存管理中,逻辑地址也使用段来查找运算符或指令。那么,段之间是否相同? ELF文件加载到内存中进行分段,而这个段就是内存管理中使用的同一个段?

最佳答案

现代操作系统通常不再使用分段内存。分段内存是 1980 年代和 1990 年代 DOS 时代的遗物。虽然您仍然可以为内存操作数选择“段”,但这仅限于 FS 和 GS“段”,它们实际上不是段,而只是偏移量。

大多数架构上的大多数程序的内存模型都是扁平的(不是分段的)。

ELF 段只不过是加载到内存中供进程运行的特定数据 block 。如果进程使用共享库,可能会有很多很多段,因为每个库都包含自己的段。

“分段内存”和“ELF段”这两个概念并没有真正的关联,它们只是共享一个名称。

关于linux - ELF和内存中的段有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45687646/

相关文章:

php 获取 iscsi 输出 Linux

Android 2.1 以编程方式卸载 SDCard

c++ - 问题 : String writes over another string

c - 未初始化的全局变量在 c 中总是默认为 0 吗?

c++ - 将源代码添加到elf文件

c++ - 使用二进制检测 Hook 函数

linux - 如何在 Linux 中从文本文件中提取任意标签并测量内容长度

javascript - 使用javascript动态刷新图像时的内存泄漏

c++ - 什么时候使用新关键字?

Android N 预览 dlopen() "has no section headers"错误