首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于虚拟内存

关于虚拟内存
EN

Stack Overflow用户
提问于 2012-01-06 17:28:10
回答 1查看 212关注 0票数 3

我有一个关于虚拟记忆的微妙问题。在一本书里,我读到了这句话

当执行ELF文件时,文本和两个数据段被加载到虚拟内存的不同区域。

但是,例如,如果我们编译一个由两个源文件组成的C程序,而不进行链接,它将产生两个对象文件。在这两个目标文件中,寻址从零开始。然后,如果我们将两个对象文件链接到一个可执行文件并检查它,我们将发现寻址不再从零开始,而是已经为每个段分配了一些地址。据我了解,这个分配的地址是一个虚拟内存地址。所以我有两个问题:

  1. 所以我是正确的,是链接器请求从OS到程序段的虚拟内存范围并将其分配给程序段?引用的作者
  2. 当他说在进程执行时分配虚拟地址时意味着什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-06 17:40:26

链接器将分配一个虚拟地址,该虚拟地址可用作加载段的“基”。所以,是的,链接器确实分配了虚拟地址库。操作系统只是将这个内存映射到一个物理地址。分配是将物理地址分配给虚拟地址的操作系统。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8761875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档