【发布时间】:2019-12-18 02:26:49
【问题描述】:
我想kprobe 将新文件映射到内存的函数,但我很难找到检查文件描述符是否已加载的函数。
我尝试挂钩 mmap 系统调用,但这并没有真正的帮助,因为我已经得到了像 libc.so 这样的映射文件。
我似乎无法弄清楚它是与文件系统相关还是与内存相关,我查看了这两个地方但找不到它发生的位置。
【问题讨论】:
我想kprobe 将新文件映射到内存的函数,但我很难找到检查文件描述符是否已加载的函数。
我尝试挂钩 mmap 系统调用,但这并没有真正的帮助,因为我已经得到了像 libc.so 这样的映射文件。
我似乎无法弄清楚它是与文件系统相关还是与内存相关,我查看了这两个地方但找不到它发生的位置。
【问题讨论】:
inode 是内核私有对象。内核不使用 libc.so。用户级程序(可能使用 libc.so)不能直接引用 inode;相反,它们有一个进程本地标识符(文件描述符),内核知道如何将其转换为适当的结构。
所以,你找错地方了。
【讨论】: