scodong 发表于 2011-8-23 09:36:43

用户空间读取内核空间变量的值,求助

我现在想在用户空间读取内核函数里面的一个变量的值,怎么取得内核空间中函数变量的地址啊?也就是说在用户空间怎么引用那个内核变量?我想用put_user这个函数,里面的参数怎么填写呢?请前辈们指点下小弟,谢谢

Parmenides 发表于 2011-10-20 23:18:39

查看/boot/System.map-x.y.z文件:

                  grep 变量名 /boot/System.map-x.y.z

linux_sir_huang 发表于 2011-12-2 17:42:43

想法,以及做法都是错误的

想法为什么是错误的:
内核空间的所有信息,不可能直接从用户空间访问到,除非这部分信息被内核映射到该应用程序的进程空间中。
一句话,内核,通过各种接口,让应用程序来访问,而不是直接设置。

做法是错误的。
使用grep,是能够获得当前内核的符号表,甚至是地址,但它位于内核空间你也用不了。那么,它是为谁用的?
查一下我们的驱动载入内核的过程吧, 这是为我们的这些系统调用准备的。

那么我们怎么办?
标准做法是,你写一个自己的驱动,字符驱动就可以了,把你想传的参数传给它,由它替你完成就可以了。
页: [1]
查看完整版本: 用户空间读取内核空间变量的值,求助