Linux kernel 任何Linux内核模块的唯一或半唯一模块ID或名称
是否有任何方法可以让我查询一个ID或名称,该ID或名称可用于从模块中识别已加载的Linux内核模块 例: 在sample.ko内Linux kernel 任何Linux内核模块的唯一或半唯一模块ID或名称,linux-kernel,kernel-module,unique-key,Linux Kernel,Kernel Module,Unique Key,是否有任何方法可以让我查询一个ID或名称,该ID或名称可用于从模块中识别已加载的Linux内核模块 例: 在sample.ko内 int id = get_module_id(???); printk("%d", id); 目标是在资源跟踪系统中使用ID来识别哪些模块未能释放资源,因此,只要ID在实际系统中是唯一的,那么ID在理论上可能是非唯一的 这里的目标是最大限度地减少对单个组件的更改,因此“定义您自己的标识符”等解决方案将不起作用。如果每个模块版本都有足够大的差异,那么模块的大小可能足以
int id = get_module_id(???);
printk("%d", id);
目标是在资源跟踪系统中使用ID来识别哪些模块未能释放资源,因此,只要ID在实际系统中是唯一的,那么ID在理论上可能是非唯一的
这里的目标是最大限度地减少对单个组件的更改,因此“定义您自己的标识符”等解决方案将不起作用。如果每个模块版本都有足够大的差异,那么模块的大小可能足以满足您的需要:
[wally@lenovotower ~]$ lsmod
Module Size Used by
uvcvideo 51149 0
snd_usb_audio 85970 1
snd_usbmidi_lib 14807 1 snd_usb_audio
snd_rawmidi 16204 1 snd_usbmidi_lib
videodev 70682 1 uvcvideo
media 9214 2 uvcvideo,videodev
vfat 7031 0
fat 37971 1 vfat
您可以使用模块名称作为密钥
或者,您可以使用预处理器并将文件名_FILE______)用作密钥。虽然不能保证每个模块的文件名都是唯一的。这是一个有趣的想法,可能可行,但如何从该模块中轻松发现模块的大小?更好的做法是获取用于模块列的字符串,因为整个要点是记录分配,以便最终报告给用户。