LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1849|回复: 2

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

[复制链接]
发表于 2011-8-23 09:36:43 | 显示全部楼层 |阅读模式
我现在想在用户空间读取内核函数里面的一个变量的值,怎么取得内核空间中函数变量的地址啊?也就是说在用户空间怎么引用那个内核变量?我想用put_user这个函数,里面的参数怎么填写呢?请前辈们指点下小弟,谢谢
发表于 2011-10-20 23:18:39 | 显示全部楼层
查看/boot/System.map-x.y.z文件:

                  grep 变量名 /boot/System.map-x.y.z
回复 支持 反对

使用道具 举报

发表于 2011-12-2 17:42:43 | 显示全部楼层

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

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

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

那么我们怎么办?
标准做法是,你写一个自己的驱动,字符驱动就可以了,把你想传的参数传给它,由它替你完成就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表