我知道os会将elf加载到物理内存中。当执行jmp elf-address
时,系统将检查tlb并将elf地址转换为物理地址。我很困惑,精灵地址没有段号和页号?如何将elf地址转换为MMU需要的内容。如何将elf中的地址转换为物理地址
我真的很困惑。我知道linux会读取精灵和地图精灵的头文件。 当发生页面错误时,内核会将elf加载到内存中并刷新页表。 但是你的小精灵地址就像0x0804900。 如果我们想要exe jmp elf-address
,内核如何映射elf地址来寻址哪个MMU可以使用。 你知道MMU地址是基于段号和页号。
有没有一个地图表,os会寻找?而当执行jmp elf-address
时,会先将elf地址映射到MMU地址? 如: elf-address <==> MMU-address
好问题,特别是在ASR的这个时代... – fge
你为什么要问?从哪个角度来看:从内核还是从用户应用程序? –
我真的很惊讶这个问题得到这么大的分数。我不觉得它显示了这个问题的前期研究.... –