linux下如何实现内核态和用户空间进程共享内存?
各位大虾好,现在正在研究在Linux内核中分配一块内存空间往里写入数据,然后由用户空间的进程来读写这块内存,现在的思路是这样子:
(1)开发一个内核模块,在内核模块中创建一块共享内存,然后通过netlink方式将这块内存的地址传给用户空间的进程。同时启动一个线程往这块内存空间中写入数据。
(2)用户空间的进程得到这个地址后根据这个地址去读取其中的内容。
我现在已经完成了通过netlink方式实现内核模块与用户进程的通信,也用mmap实现了两个用户空间进程的共享内存,但是却不知道如何实现内核模块与用户进程的共享内存,请高手指教。
另外再多问几个有关问题:
(1)像上面的思路是否能够实现?能的话是用什么方法呢?对于内存的大小有没有限制?(要求能实现1G的内存共享)
(2)如果上面的思路不可行,那反过来由用户进程分配共享内存,然后通知内核的话是否可行呢?
(3)内核的地址和用户进程的地址是如何转换的呢?
因为刚接触这块,问题比较多,请各位不吝赐教,分不够可以加,呵呵
非常感谢呵呵,我先试验下看看,有问题再请教你
请问1楼的大哥,为什么我在编译的时候出现错误,提示我
structure has no member named "dst_group"
就是这一行NETLINK_CB(skb).dst_group = 0;
我的内核版本是2.6.9-1.667,fedora 3
呵呵 多谢多谢 请问你有QQ之类的即时联系方式吗?
有时间想想你多多请教一下 呵呵
还请其他对这方面熟悉的大哥大姐们多多提供些思路方法,让俺也学习学习,呵呵
steptodream的例子我make已经搞定,但好像里面还有些错误,正在调试
相关问答:
由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......
linux 下C编程 集成开发环境 用什么比较好
我初步选定 codeblock
呵呵 还有 在linux 写了一个打印中文的代码,而今天在windows 下查看那个代码 , 是乱码 而后想到先用 EditPlus先进行编辑 然后复制 ......
本来没问题的,但是现在不管用什么工具连数据库都很慢,因为后来服务器中多加了块网卡,而数据库监听设置的还是服务器名,我想会不会是这个问题,请教高手,并询问解决方法!谢谢
自己先顶下
把后加的网卡拿掉在 ......
如题,在WINDOWS底下的CODE会,但在LINUX下不知道如何实现,JS的代码应该是不一样的。 求教。
分不够再加。
http://topic.csdn.net/u/20100113/08/17ba1e71-4c33-43f6-91a5-0e031c86e5ed.html
linux ......
在Linux中,
如果父进程调用exit(0)退出,
那么由该进程创建的两个子进程会立即退出吗???
希望围绕该问题说清楚点,谢谢了。
不会
两个子进程脱离了父进程,独立运行
父进程死掉后,其所有子孙进程被init收 ......