1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Linux中ELF格式 可执行文件+动态链接器 的加载

Linux中ELF格式 可执行文件+动态链接器 的加载

时间:2022-10-15 04:00:47

相关推荐

Linux中ELF格式  可执行文件+动态链接器  的加载

两种加载方式

(1)加载可执行文件,通过PT_INTERP加载动态链接器

(2)直接加载动态链接器,再由其加载可执行文件

On a typical ELF system such as Linux, the kernel is normally responsible for loading both the executable and the dynamic linker. The executable is invoked by filename with execve(). The kernel loads the executable into the process, and looks for a PT_INTERP entry in its ELF Program Headers; this specifies the filename of the dynamic linker (/lib/ld-linux.so.2 for glibc on Linux). If there is a PT_INTERP entry, the kernel loads this file too.

Either of these two ELF objects can be relocatable (ET_DYN) or require loading at a fixed position in address space (ET_EXEC). Most often, the dynamic linker is relocatable and the executable is fixed-position with a standard base address (0x08048000 on i386). Sometimes the executable is relocatable too (these are known as PIEs - position-independent executables). For relocatable objects, the kernel chooses the load address.

There is another way to load the two ELF objects: the dynamic linker can be invoked directly with execve(). If passed the filename of an executable, the dynamic linker will load the executable itself.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。