+ -
当前位置:首页 → 问答吧 → 终端与嵌入式linux

终端与嵌入式linux

时间:2011-08-20

来源:互联网

为什么内核空间读应用空间的数据要用get_user(),而传到应用空间要用put_user()这二个宏呢。查了很多书都没说明,书上只是说内核空间和应用空间不能直接读写,要通过这二个宏来实现(char,int,long类型的数),但没说明为什么,我看了这二个宏的ASM,实现也是通过间接地址实现的,内核空间在0XC0000000地址上面,应用空间在0XC0000000下面,为什么不能直接用直接用C语言的 *dst=*src 来实现呢,这点一直没弄明白。有那位兄弟指点一下我这个菜鸟。我现在想在用户空间读取内核函数里面的一个变量的值,哪位高手指点我一下?谢谢

作者: scodong   发布时间: 2011-08-20

貌似用户空间和内核空间是两个概念,不能单纯用*dst = *src的方式吧

具体我还真没考虑过,帮你研究一下

作者: tonghuix   发布时间: 2011-08-20

我主要是想实现在用户空间读取内核函数里面的一个变量的值

作者: scodong   发布时间: 2011-08-20

...
用sysfs或procfs导出内核变量。

procfs已经不推荐使用,强烈推荐sysfs。

这俩个头文件:
http://git.kernel.org/?p=linux/kernel/g ... c49c17182f
http://git.kernel.org/?p=linux/kernel/g ... c49c17182f

用函数platform_device_register_simple
和宏DEVICE_ATTR

作者: cnkilior   发布时间: 2011-08-20

热门下载

更多