zoukankan      html  css  js  c++  java
  • Unix操作系统设备驱动程序浅谈

    e良师益友网】在Unix操作系统内部,I/O设备的存取通过一组固定的入口点来进行,这组入口点是由每个设备的设备驱动程序提供的。一般来说,字符型设备驱动程序能够提供如下几个入口点:

    1、open入口点。打开设备准备I/O操作。对字符特别设备文件进行打开操作,都会调用设备的open入口点。open子程序必须对将要进行的I/O操作做 好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。

    2、close入口点。关闭一个设备。当最后一次使用设备终结后,调用close子程序。独占设备必须标记设备可再次使用。

    3、read入口点。从设备上读数据。对于有缓冲区的I/O操作,一般是从缓冲区里读数据。对字符特别设备文件进行读操作将调用read子程序。

    4、write入口点。往设备上写数据。对于有缓冲区的I/O操作,一般是把数据写入缓冲区里。对字符特别设备文件进行写操作将调用write子程序。

    5、ioctl入口点。执行读、写之外的操作。

    6、select入口点。检查设备,看数据是否可读或设备是否可用于写数据。select系统调用在检查与设备特别文件相关的文件描述符时使用select入 口点。如果设备驱动程序没有提供上述入口点中的某一个,系统会用缺省的子程序来代替。对于不同的Unix操作系统,也还有一些其它的入口点。

    关于Unix操作系统设备驱动程序的基本结构的知识,我们今天就讲解到这里,以后希望有更多的机会来和大家来探讨。还有更系统运维教程相关知识登录e良师益友网。

  • 相关阅读:
    HttpServletRequest和HttpServletResponse
    .NET Core 通过 Ef Core 操作 Mysql
    spring-boot整合shiro实现权限管理
    spring-boot整合mongodb多数据源的案例
    spring-boot整合mybaits多数据源动态切换案例
    spring-boot整合Mybatis多数据源案例
    spring-boot整合mongodb的案例
    spring-boot和redis的缓存使用
    spring-boot 定时任务案例
    spring-cloud:熔断监控Hystrix Dashboard和Turbine的示例
  • 原文地址:https://www.cnblogs.com/yuguotianqing/p/4049839.html
Copyright © 2011-2022 走看看