Linux内核与应用层数据交流的几种方式

本文主要介绍了Linux内核与数据交流的几种方式

现在我想到的几种:

1.输入子系统,这个是单向的,只能内核->应用层

2.系统调用,ioctl/read/write等函数,对应了字符设备等设备类型,这个是双向的,内核层和应用层可以互相发数据

3.sys文件系统,也就是属性节点,同样也是双向的

4.proc文件系统

5.用户空间驱动,很高大上的感觉有木有,这个也是双向的

6.读写块设备(大概也许可能也能实现用户空间和内核空间的数据交互,但是自己对块设备不甚了解,写这个的话我会查阅很多资料再考虑)

7.直接读写物理内存

8.fw_printenv/fw_setenv设置uboot环境变量的工具,应用层使用fw_setenv设置uboot的环境变量,内核启动过程中可以读取这个变量,也可以实现应用层往内核发数据。

目前我用到的大概也许可能就这几种,周末有时间会对那几种方法都做个详细的分析。又发现新的内核空间和用户空间进行数据交流的方法再补充。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章