关于Linux驱动文件的加载以及相关符号的地址说明

来源:互联网 发布:xerxes的网络意思 编辑:程序博客网 时间:2024/06/05 18:26

大家熟知的ELF文件有三种类型:1. 可重定位,2 可执行,3. 动态链接。关于ELF的相关资料网上很多,也讲的十分详细。

在此给出一个链接的细节说明。

一般的Linux的驱动模块编译出来的*.ko文件其实就是可重定位的文件,其格式和一般Use mode编译的*.o相似,

这一点大家可以自己去尝试下,使用readelf -h * 读取下头部即可。

但是整个insmod ×.ko的过程和×.o 的过程存在差异:

*.o的静态链接之后,找到相关的符号,并修改的符号的地址,

而insmod ×ko的使用方式其实类似于*so, 通过了×plt,got 段做了地址的偏移。

ARM有一个trace的模块叫gator,大家可以尝试对应地址和符号的位置。


就讲到这里,希望对读者有帮助。

0 0