max*_*max 3 kernel mmap linux-kernel
我找不到一些合适的例子来解决我的问题.我想在用户和内核空间之间共享4K(4096)字节的数据.我发现很多想法都说我必须从内核中分配内存并在用户空间中对其进行mmap.有人可以提供一个如何在Linux 2.6.38中执行此操作的示例.有没有什么好的文件可以解释它?
提前致谢.
您提出的方法是一种方式,但由于用户空间不在您的控制之内(意味着任何用户空间程序都有可能进入内核),您正在为用户空间提供恶意攻击的机会.这里还描述了这种基于内核的内存共享与用户空间:
http://www.scs.ch/~frey/linux/memorymap.html
相反,如何在用户空间中分配内存,然后从内核使用API copy_from_user()和copy_to_user()来复制到用户空间内存?如果你想在不同的进程之间共享内存,那么你总是可以使用IPC相关的API来分配和定义内存,例如shmget()等.在这种情况下,内核源代码本身就有很多示例代码.
例如.
fs/checksum.c:missing = __copy_from_user(dst,src,len);
| 归档时间: |
|
| 查看次数: |
4298 次 |
| 最近记录: |