免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2718 | 回复: 11
打印 上一主题 下一主题

从驱动到应用操作系统是如何将他们联系起来的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-05 11:41 |只看该作者 |倒序浏览
例如:我用gtk+(基于x)写了一个简单的应用程序,并为这个程序编写了key_press_event事件处理.那请问大家,当我敲击键盘 的时候,linux是如何通过键盘中断处理程序通知应用的?,这个过程是什么样的?谢谢

论坛徽章:
0
2 [报告]
发表于 2007-04-05 12:14 |只看该作者
fopen->sys_write->vfs_write->driver_write

[ 本帖最后由 lsmup 于 2007-4-5 13:03 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-04-05 13:21 |只看该作者
嘿嘿,这个俺知道,请按这个来回答:
例如:我用gtk+(基于x)写了一个简单的应用程序,并为这个程序编写了key_press_event事件处理.那请问大家,当我敲击键盘 的时候,linux是如何通过键盘中断处理程序通知应用的?,这个过程是什么样的?谢谢

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2007-04-05 14:40 |只看该作者
驱动注册中断,
中断发生,
Xserver得知键盘中断,通知应用程序。

论坛徽章:
0
5 [报告]
发表于 2007-04-05 14:49 |只看该作者
中断是上下文无关的,只是利用当前进程的系统堆栈。看了一下ret_from_intr到ret_with_reschedule,只有信号是可以与具体的进程关联上,所以应该是按键的信号被你的进程捕捉到,放到进程的sig_pending 里面,返回后就进行信号的处理流程

论坛徽章:
0
6 [报告]
发表于 2007-04-05 16:12 |只看该作者
原帖由 cjaizss 于 2007-4-5 14:40 发表
驱动注册中断,
中断发生,
Xserver得知键盘中断,通知应用程序。

中断发生,x是怎样得到通知的呢?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2007-04-05 16:43 |只看该作者
比方通过select得知中断发生(可读)。或者SIGIO信号之类

论坛徽章:
0
8 [报告]
发表于 2007-04-05 17:30 |只看该作者
键盘的中断处理程序对寄存器中的数据做了怎样的处理后,我用诸如select这样的系统调用就可判断到?

论坛徽章:
0
9 [报告]
发表于 2007-04-05 19:10 |只看该作者
实际上应该是这样,你的key_press_event总要有输入才有判断。
键盘中断处理程序之后,读入字符,最终放入你的用户空间的缓冲区中,而你就就根据这个
读入的数据进行判断,再进行相应的操作

论坛徽章:
0
10 [报告]
发表于 2007-04-06 09:40 |只看该作者
谢谢各位,俺没写过驱动,不知道键盘驱动的中断处理程序都做些什么工作?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP