我知道操作系统会将elf加载到物理内存中。当执行
我真的很困惑。 我知道Linux会读取ELF头并映射ELF。 当发生页面错误时,内核会将ELF加载到内存中并刷新页表。 但是你知道ELF地址看起来像0x0804900。 如果我们要执行
操作系统是否有一个映射表来查找?当执行
jmp elf-address
时,系统会检查TLB并将elf地址转换为物理地址。我困惑的是,elf地址没有段号和页号?操作系统如何将elf地址转换为MMU所需的地址。我真的很困惑。 我知道Linux会读取ELF头并映射ELF。 当发生页面错误时,内核会将ELF加载到内存中并刷新页表。 但是你知道ELF地址看起来像0x0804900。 如果我们要执行
jmp elf-address
,内核如何将ELF地址映射到MMU可以使用的地址。
您知道MMU地址是基于段号和页号的。操作系统是否有一个映射表来查找?当执行
jmp elf-address
时,操作系统是否首先将elf地址映射到MMU地址?
例如:
elf-address <==> MMU-address