ELF中的虚拟和物理地址

时间:2012-10-08 04:24:56

标签: linker elf

我对ELF部分的虚拟和物理地址有这个基本的疑问。

objdump -h,显示逻辑和物理地址集。

$ objdump -h my.elf
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0003c3d0  00080000  00080000  00010000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE

根据理论,LMA(物理地址)也称为加载地址,这是应该加载应用程序的地址。

一切都很好,但我的问题是为什么我们这么早就分配了物理地址。我的意思是如果我启动一个程序提到一些加载地址,但在加载时,系统发现可加载地址所属的页面框架已经分配给其他任务。在那种情况下,系统是否会等待进程或者是否会立即换出页面,从而使页面可用。

如果我们让系统根据可用的页面框架决定加载精灵部分的地址,你认为不会好多了吗?

1 个答案:

答案 0 :(得分:1)

每个进程都在自己的地址空间中运行,因此每个可执行文件都可以指定它预期加载的位置,并且没有一个会相互干扰。