当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2016-10-05

    本文导语:  字符设备驱动,想必大家见过多了。 有此疑问: 加载这个模块之后的流程如何: 是不是对应一个进程,然后让它sleep,由其它的程序调用, Linux不是把设备当做文件吗,难道一个read或者write操作就可以把它wake up,执行...

字符设备驱动,想必大家见过多了。
有此疑问:
加载这个模块之后的流程如何:
是不是对应一个进程,然后让它sleep,由其它的程序调用,
Linux不是把设备当做文件吗,难道一个read或者write操作就可以把它wake up,执行完毕之后继续sleeping ?
请各位解答。

|
linux是个宏内核 结构比较紧凑 以函数执行流程往下走
驱动程序并非是那种C/S模式  也有其他的功能是通过内核线程的方式存在的 比如swapper
字符型设备驱动的函数也是这样被调用的
应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去

|
你要首先理解,内核本身是不会被调度执行的,只有进程会被调度执行
内核只有在中断(硬件的和进程调系统调用产生的异常)到来时才动一下,之后很快就把控制权交还进程

驱动就是内核的一部分

|
驱动应该是内核的一部分吧
没有这样一个守护进程

|

应用层-》系统调用层-》VFS-》根据字符型设备的file_operations表进行跳转到操作该设备的函数中去
往下走就是向设备发送中断 等待设备完成读写操作 获取相关数据

    
 
 

您可能感兴趣的文章:

  • Linux设备驱动(第三版)- 字符设备驱动 - 例子
  • 字符设备驱动,混杂设备驱动,总线、设备、驱动模型、平台驱动
  • 字符型设备驱动生成的块设备
  • Linux字符设备驱动疑难问题--printf打印信息发到字符设备write函数中
  • Linux下写了一个字符设备驱动,找不到设备文件在哪个目录
  • 关于字符设备驱动读写的问题,求助
  • linux 下简单的字符设备驱动
  • 请教:Solaris10下如何让字符设备驱动在开机自动启动呢?在线等...
  • 字符设备驱动简单问题
  • Linux 中多个字符设备的驱动问题。
  • 字符设备驱动程序问题
  • 自己编写一个简单的字符设备驱动程序以后,改怎么使用它?
  • linux简单字符设备驱动的一点疑问,麻烦前辈进来指点一二!
  • 请教高手,有关字符设备驱动程序问题
  • 关于字符设备驱动的一个问题,谢谢!
  • 初学字符设备驱动遇到的问题
  • I2C总线上字符设备驱动加载不成功,probe函数没有执行。
  • 字符设备驱动程序编写中,被读写的数据到底应该定义在什么地方?
  • 关于linux字符驱动设备的一个疑问
  • 我在一个字符设备写了一些方法,read,write等,我在用户层使用这些系统调用的时候怎么用到我这个字符设备驱动所定义的??
  • 关于LINUX下图形界面显示字符的疑问
  • 字符串的疑问
  • 字符驱动程序的疑问!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Strings(字符串) 成员 size():返回字符串中字符的数量
  • 关于字符串的操作,我想得到字符串的长度,和他开始两位组成的新的字符串,例如::
  • C++ Strings(字符串) 成员 c_str():将字符串以C字符数组的形式返回
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • C++ Strings(字符串) 成员 find():在字符串中查找字符
  • C语言实现输入一个字符串后打印出该字符串中字符的所有排列
  • C++ Strings(字符串) 成员 end():返回一个迭代器,指向字符串的末尾。(最后一个字符的下一个位置)
  • 用Java正则去掉字符串中重复出现的字符
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • 字符字符串加法问题?
  • C++ Strings(字符串) 成员 copy():将内容复制为一个字符数组
  • 怎样去掉字符串中的tab字符?
  • C++ Strings(字符串) 成员 rbegin():返回一个逆向迭代器,指向最后一个字符
  • 如何使GDB显示完整的字符串变量,当字符串比较长时。
  • C++ Strings(字符串) 成员 empty():如果字符串为空,返回真
  • 如何将一个双引号”放在一个字符串中,就是在字符串中如何转义一个双引号。谢谢!
  • C++ Strings(字符串) 成员 begin():返回一个迭代器,指向第一个字符
  • php判断字符串在另一个字符串位置的方法
  • C++ Strings(字符串) 成员 data():返回内容的字符数组形式
  • 请教,有关16进制字符串形成2进制字符串的问题!
  • C++ Strings(字符串) 成员 length():返回字符串的长度
  • crtl+alt+F1一直到F6都可以从图形到字符,那么,这和纯粹的字符界面有什么区别,也就是该/etc/initab的值为3后进入的字符界面?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3