LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 996|回复: 6

关于内核驱动和xwindow如何通信的问题

[复制链接]
发表于 2005-9-13 23:27:42 | 显示全部楼层 |阅读模式
我是一名初学者,想知道xwindow是如何与内核驱动通信的,比如说xwindow是如何得知有鼠标键盘输入,不可能说是打开设备文件不停地在死读吧,这样的话效率也太低了吧。还有当usb打印机插入后它又是怎么知道的呢,好像内核驱动里都没有相应地和用户程序通信的机制,除了read,write,ioctl等用户程序主动去调用外,内核驱动没有主动通知用户程序设备进入了何种状态的机制,这样的话对于构建在其上的GUI不是有些不利吗?不知哪位大侠在这方面有造诣,请不吝赐教,小生在此谢过了。
发表于 2005-9-14 05:41:49 | 显示全部楼层
各发行版的实现不同,无法说清楚。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-14 09:35:45 | 显示全部楼层
我只想知道是用什么机制?我们就拿在2.4.18上用xfree如何?
回复 支持 反对

使用道具 举报

发表于 2005-9-14 14:13:09 | 显示全部楼层
Post by tanphy
我是一名初学者,想知道xwindow是如何与内核驱动通信的,比如说xwindow是如何得知有鼠标键盘输入,不可能说是打开设备文件不停地在死读吧,这样的话效率也太低了吧。还有当usb打印机插入后它又是怎么知道的呢,好像内核驱动里都没有相应地和用户程序通信的机制,除了read,write,ioctl等用户程序主动去调用外,内核驱动没有主动通知用户程序设备进入了何种状态的机制,这样的话对于构建在其上的GUI不是有些不利吗?不知哪位大侠在这方面有造诣,请不吝赐教,小生在此谢过了。

select
poll
strace一下就看到了
回复 支持 反对

使用道具 举报

发表于 2005-9-14 18:11:17 | 显示全部楼层
Post by tanphy
我只想知道是用什么机制?我们就拿在2.4.18上用xfree如何?

这么低版本的内核,似乎实现你说的功能很困难。要添加很多的补丁,增加大量额外的组件。

如果你要我简单说,就是signal机制。我在理论版发了一篇关于U盘即插即用的文章,是2.6内核下的,FC3和Mandriva 2005的原理与此类似,FC4和Mandriva 2006均与该文章的理论有所不同。SUSE由于是封闭式开发,其技术特点不详。其它发行版由于需要用户自行选择各组件,所以一般所有用户的情况均不同。
回复 支持 反对

使用道具 举报

发表于 2005-9-14 18:50:30 | 显示全部楼层
2.6内核的kernel event layer
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-15 09:26:24 | 显示全部楼层
Post by fundawang
这么低版本的内核,似乎实现你说的功能很困难。要添加很多的补丁,增加大量额外的组件。

如果你要我简单说,就是signal机制。我在理论版发了一篇关于U盘即插即用的文章,是2.6内核下的,FC3和Mandriva 2005的原理与此类似,FC4和Mandriva 2006均与该文章的理论有所不同。SUSE由于是封闭式开发,其技术特点不详。其它发行版由于需要用户自行选择各组件,所以一般所有用户的情况均不同。

是不是说得和驱动密切配合才行呢?比如命名的信号,可我觉得现有的驱动都没用到啊!另外red hat不也用这个核发行过版本吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表