对于2.4内核和2.6内核的内核符号表是有区别的,2.4内核默认情况下模块中的非静态全局变量以及非静态函数在模块加载后会自动导出到内核符号表中,而2.6内核默认情况下是不会自动导出的,需要显式调用宏EXPORT_SYMBOL才能导出。导出的符号前面一般标注有r标记。可以通过nm -l xx.ko来查看某一个模块里的符号情况。或者通过查看内核符号表文件也行。对于2.4是:cat /proc/ksyms,对于2.6是:cat /proc/kallsyms.因此
cat /proc/kallsyms | grep xxxxx[函数地址即可]
本文详细介绍了2.4内核与2.6内核在符号表处理上的不同之处。2.4内核默认将模块中的非静态全局变量及函数导出至符号表,而2.6内核则需要使用EXPORT_SYMBOL宏进行显式导出。文中还提供了检查内核符号表的方法。
1588

被折叠的 条评论
为什么被折叠?



