当前位置: 技术问答>linux和unix
用户空间如何访问内核变量
来源: 互联网 发布时间:2015-08-07
本文导语: 我在内核定义了一个全局变量,请问在用户空间怎么访问这个变量。 | 加一个系统调用 | 谁说/dev/kmem /proc/kcore和/dev/mem不能写了? | 可以!通过自己写一个...
我在内核定义了一个全局变量,请问在用户空间怎么访问这个变量。
|
加一个系统调用
|
谁说/dev/kmem /proc/kcore和/dev/mem不能写了?
|
可以!通过自己写一个模块接口!例如:
在内核空间要访问的变量为 int var;
则可以写一个模块来访问它:
#define _MODULE_
#define _KERNEL_
int GetMyVar(void)
{
return var;
}
int init_module(void)
{
printk("加载模块");
}
void cleanup_module(void)
{
}
.......
哥们可以看看参考书,下面的怎么写!非常简单!就是把GetMyVar定义成内核符号就行了。
在内核空间要访问的变量为 int var;
则可以写一个模块来访问它:
#define _MODULE_
#define _KERNEL_
int GetMyVar(void)
{
return var;
}
int init_module(void)
{
printk("加载模块");
}
void cleanup_module(void)
{
}
.......
哥们可以看看参考书,下面的怎么写!非常简单!就是把GetMyVar定义成内核符号就行了。
|
方法一:通过module
方法二:通过/dev/kmem /proc/kcore 或者/dev/mem
方法二:通过/dev/kmem /proc/kcore 或者/dev/mem
|
通过module可以读并写
通过/dev/kmem /proc/kcore和/dev/mem只能读
通过/dev/kmem /proc/kcore和/dev/mem只能读