想了解Linux内核的行为,需要一定的偷窥经验,大致可以分为以下几个:
1.使用printk
直接在内核代码或者模块代码的你想偷窥的地方printk一些信息。这种方式需要你会编译内核代码以及编译内核模块,以及将其正确安装进内核并启动之。虽然需要这么多知识,然而这种方式是比较土的。除非万不得已,一定有比这更加简单的方法。
2.查看dmesg
这种方式取决于内核会输出哪些信息。dmesg显示的信息一般都是比较重要的信息。
3.精通procfs
procfs中含有大量有用并有趣的信息,要么你直接看(格式特殊,很难看懂),要么通过工具分析,比如rtstat,conntrack之类的工具都是在分析proc下的文件并且用可读的形式显示出来。一般内核的一些统计信息,都有相应的stat文件以供分析。
4.使用kprobe
这是一种调试手段,然而一般不用,也用不到。
5.使用一些小手段
这就要看你的聪明才智了,想出一些自己的逻辑,引导或者蹂躏内核,使之进入你的圈套,证实你的猜测。
【编辑推荐】