在Linux的内核中,对输入设备的使用,实际上运用了3大块来管理,他们分别是所谓的输入设备驱动层、输入子系统核心层,以及事件触发层。他们各自的工作分别是:
输入设备驱动层:
每一种设备都有其特定的驱动程序,他们被妥当地装载到操作系统的设备模型框架内,封装硬件所提供的功能,向上提供规定的接口。
核心层:
此处将收集由设备驱动层发来的数据,整合之后触发某一事件。
事件触发层:
这一层是我们需要关注的,我们可以通过在用户空间读取相应设备的节点文件来获知某设备的某一个动作。
以触摸屏为例,当手指在屏幕上滑动的时候,数据流大致是这样的:驱动层中的触摸屏驱动会源源不断地产生触摸屏相关数据,并向上递送给内核输入子系统,输入子系统进一步将这些信息规整为统一的结构体,并借助事件触发层发往对应的设备节点,至此,应用程序即可从这些设备节点读取相关信息。
值得注意的是,底层驱动产生的设备数据与上层应用读取设备数据是两个完全异步的过程,彼此之间是没有耦合和约束的,例如:当底层驱动产生的触摸屏坐标信息比应用层读取的速度要快时,应用程序将会丢失一部分坐标信息。
2. 输入信息结构体
在最靠近应用程序的事件触发层上,内核所获知的各类输入事件,比如键盘被按了一下,触摸屏被滑了一下等,都将被统一封装在一个叫做 input_even 的输入信息结构体当中,这个结构体定义
野生的狒狒
- 粉丝: 3398
- 资源: 2437
最新资源
- 机械设计清洗机sw21全套设计资料100%好用.zip.zip
- Python基础知识入门及实例解析
- 基于MATLAB和Python的图像加解密算法实现
- 证件照处理技术 - Python和OpenCV实现尺寸调整与背景更换
- mzx1033203084
- 机械设计3.5JACK自动组装机sw18可编辑全套设计资料100%好用.zip
- 机械设计45度铝材锯切设备step全套设计资料100%好用.zip
- 机械设计C1汽车车轮钢圈加工 sw16全套设计资料100%好用.zip
- 机械设计BP工业油桶20L自动化检测线(sw18可编辑+工程图+BOM)全套设计资料100%好用.zip
- E9将流程附件进行文档比对.zip
- 机械设计Co2清洗与测试机sw18可编辑全套设计资料100%好用.zip
- vbs维护系统2005版学习参考完美实例最新版本
- 机械设计DN65DN65板式换热机组sw14可编辑全套设计资料100%好用.zip
- 基于django,d3js与echarts的领域知识图谱检索与计量平台.面向语言政策领,包括语言政策领域的知识检索,关系检索与钻取,计量分析,知识可视化.详细文档+全部资料+优秀项目.zip
- 基于neo4j的知识图谱, 构建智能多轮问答详细文档+全部资料+优秀项目.zip
- 基于 RAG 与大模型技术的医疗问答系统,详细文档+全部资料+优秀项目.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈