关于字符设备驱动的一点疑问

mengde007 2010-10-11 03:44:47
字符设备驱动,想必大家见过多了。
有此疑问:
加载这个模块之后的流程如何:
是不是对应一个进程,然后让它sleep,由其它的程序调用,
Linux不是把设备当做文件吗,难道一个read或者write操作就可以把它wake up,执行完毕之后继续sleeping ?
请各位解答。
...全文
117 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yel617 2010-10-13
  • 打赏
  • 举报
回复
学习了
rabbii 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 eclipse_2 的回复:]
linux是个宏内核 结构比较紧凑 以函数执行流程往下走
驱动程序并非是那种C/S模式 也有其他的功能是通过内核线程的方式存在的 比如swapper
字符型设备驱动的函数也是这样被调用的
应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去
[/Quote]
模块应该就和系统在一起了,相当于是一体的……
mengde007 2010-10-11
  • 打赏
  • 举报
回复
谢谢各位的答复。
小魔菇 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 eclipse_2 的回复:]

linux是个宏内核 结构比较紧凑 以函数执行流程往下走
驱动程序并非是那种C/S模式 也有其他的功能是通过内核线程的方式存在的 比如swapper
字符型设备驱动的函数也是这样被调用的
应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去
[/Quote]
应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去
往下走就是向设备发送中断 等待设备完成读写操作 获取相关数据
deep_pro 2010-10-11
  • 打赏
  • 举报
回复
你要首先理解,内核本身是不会被调度执行的,只有进程会被调度执行
内核只有在中断(硬件的和进程调系统调用产生的异常)到来时才动一下,之后很快就把控制权交还进程

驱动就是内核的一部分
小魔菇 2010-10-11
  • 打赏
  • 举报
回复
linux是个宏内核 结构比较紧凑 以函数执行流程往下走
驱动程序并非是那种C/S模式 也有其他的功能是通过内核线程的方式存在的 比如swapper
字符型设备驱动的函数也是这样被调用的
应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去
justkk 2010-10-11
  • 打赏
  • 举报
回复
对内核不甚理解
个人理解,如果内核是一个程序,驱动就是一个函数或者动态库
mengde007 2010-10-11
  • 打赏
  • 举报
回复
那么驱动以什么形式存在于内核之中呢?
外界又是怎么调用它的。
justkk 2010-10-11
  • 打赏
  • 举报
回复
驱动应该是内核的一部分吧
没有这样一个守护进程

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧