用户空间进程可以通过shmget创建共享内存。
如果两个内核模块要通过共享内存进行通信,一个模块向共享内存里面写入数据,另一个内核模块从该共享内存里读出数据。
请问能否像用户空间进程一样,通过shmget,shmat,shmdt,shmctl等函数建立共享内存?
两个内核模块要通过共享内存进行通信,该如何操作?
O(∩_∩)O谢谢
linux内核模块创建共享内存
-
- 帖子: 1
- 注册时间: 2013-07-10 10:13
- 系统: 12.04
- ttand
- 帖子: 1745
- 注册时间: 2005-08-22 14:05
- 来自: 离开北京
- astolia
- 论坛版主
- 帖子: 6456
- 注册时间: 2008-09-18 13:11
Re: linux内核模块创建共享内存
最简单的方法是直接把符号导出
char mybuffer[100];
EXPORT_SYMBOL(mybuffer);
另外一个模块就直接用就是了
extern char *mybuffer;
mybuffer[0] = 1;
char mybuffer[100];
EXPORT_SYMBOL(mybuffer);
另外一个模块就直接用就是了
extern char *mybuffer;
mybuffer[0] = 1;
- ttand
- 帖子: 1745
- 注册时间: 2005-08-22 14:05
- 来自: 离开北京
Re: linux内核模块创建共享内存
如果模块在不同的进程上下文中。虚拟地址会不会不同。astolia 写了:最简单的方法是直接把符号导出
char mybuffer[100];
EXPORT_SYMBOL(mybuffer);
另外一个模块就直接用就是了
extern char *mybuffer;
mybuffer[0] = 1;
错过好多好贴,没占到广告位后悔啊
-
- 帖子: 49
- 注册时间: 2007-03-17 1:15
Re: linux内核模块创建共享内存
写一个共享内存的驱动,在/dev下建立节点,任何需要共享的程序在用户空间打开相应的/dev节点对文件操作就行了nffy 写了:用户空间进程可以通过shmget创建共享内存。
如果两个内核模块要通过共享内存进行通信,一个模块向共享内存里面写入数据,另一个内核模块从该共享内存里读出数据。
请问能否像用户空间进程一样,通过shmget,shmat,shmdt,shmctl等函数建立共享内存?
两个内核模块要通过共享内存进行通信,该如何操作?
O(∩_∩)O谢谢