当前位置:  技术问答>linux和unix

内核访问用户空间

    来源: 互联网  发布时间:2016-06-10

    本文导语:  现在我的驱动程序有这样一个问题,需要直接访问用户空间的数据,因为数据量很大,内核的驱动需要处理他们,如果拷贝的话太耗费资源。有没有什么方法让内核驱动直接访问用户空间的数据,比如用户态程序通过...

现在我的驱动程序有这样一个问题,需要直接访问用户空间的数据,因为数据量很大,内核的驱动需要处理他们,如果拷贝的话太耗费资源。有没有什么方法让内核驱动直接访问用户空间的数据,比如用户态程序通过ioctl传递一个用户程序中的数据空间的指针,通过这个指针,内核驱动有没有办法访问这个空间?

谢谢大家啦!

|
unsigned long
copy_from_user(void *to, const void __user *from, unsigned long n)
{
if (access_ok(VERIFY_READ, from, n))
n = __copy_from_user(to, from, n);
else
memset(to, 0, n);
return n;
}


参考 copy_from_user 的实现, 用access_ok 检查一下该内存是否可以被访问现。

|
我觉得是没有问题的。 不过要注意 检测指针的 是否属于有效的 用户空间线性区  当然内核也是有相应函数的。

    
 
 

您可能感兴趣的文章:

  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 求内核和用户态简单易行的通信方法,用户态只需得到一个内核模块参数
  • 内核栈~ 内核线程 ~用户线程 之间关系 问题
  • 内核空间能否调用用户空间程序?
  • 在内核的某个函数中,如何能知道是哪个用户空间的函数调用了它,以及这个用户空间函数所在的文件?
  • linux 用户态和内核态
  • daemon 是属于 用户态编程 还是 内核态编程? 关于内核编程的书/资料介绍些好吗?
  • 请问内核空间和用户空间有什么区别,是怎么划分的.谢谢
  • 用户模式和内核模式
  • 用户态程序如何和多个内核模块进行同时数据交互??
  • 关于内核进程和用户层命令不是很理解?
  • linux用户空间到内核空间数据传递
  • 关于内核空间和用户空间之间的实时通信?
  • 用户层的数据怎么传输到内核层呢?谢谢!
  • 如何利用Linux内核线程来保存用户进程
  • :(关于用户态和内核态不懂,帮帮忙啊。
  • 用户空间的程序如何改成运行于内核的?
  • 内核进程与用户进程间的通信
  • 用户空间如何访问内核变量。
  • 内核与用户进程通信得问题,求助!
  • 关于内核时间与用户时间;我在线等你回复,所以你要告诉我!
  • Linux中内核线程不访问内核态地址空间?
  • 用户空间如何访问内核变量
  • 如何从内核访问 /proc/net/arp 文件????
  • linux 内核态能访问 用户态的 tty 终端吗?
  • 如何访问内核模块的导出符号?
  • 在内核里如何访问这段内存?
  • [给今天还在奋斗的大虾散分]用户空间的代码能否直接访问内核空间的数据????
  • 读过内核进来~~访问虚拟内存的方法!
  • DEFINE_WAIT(__wait)这宏把__wait变量定义在了进程的内核堆栈中,则另一进程使用wake_up时,是如何访问到__wait变量的呢?
  • 【新手求助】关于2.6内核下S3C2410寄存器的访问方法(串口寄存器)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 进程内核栈和操作系统内核栈的关系
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 内核栈~ 内核线程 ~用户线程 之间关系 问题 iis7站长之家
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 不重新编译内核能修改内核函数吗?
  • 如何学好内核?学了内核能应用于哪方面?
  • 请问在2.6的内核环境下编译2.4的内核有没有什么特殊的要求


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3