Linker ELF中的虚拟地址和物理地址

Linker ELF中的虚拟地址和物理地址,linker,elf,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, READONL

我对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(物理地址)也称为加载地址,这是应该加载应用程序的地址

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


你们不认为若我们让系统根据可用的页面框架来决定加载elf节的地址会更好吗

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

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

用户模式应用程序永远不会知道其内存的物理地址。请参阅。您的用户模式应用程序永远不会知道其内存的物理地址。看见