14 块设备驱动程序

文章目录

  • 块设备的处理

  • 块设备(各类磁盘)的I/O驱动程序。
  • 块设备的特点,CPU和总线读写数据所花时间与磁盘硬件速度不匹配。
  • 块设备的平均访问时间很高。
  • 每个操作都要几毫秒才完成,主要是因为磁盘控制器必须在磁盘表面将磁头移动到记录数据的确切位置。
  • 但当磁头到达正确位置时,数据传送就可稳定每秒几十MB

  • Linux:块设备处理程序的组织是相当复杂的。
  • 不可能对内核的块设备I/O0子系统中包含的所有函数都详细讨论;
  • 介绍一般软件体系结构。
  • 目标是描述 Linux如何支持各种块设备驱动程序的实现,而不只说明
    如何实现一个具体的驱动程序。

  • “块设备的处理”
    • Linux块设备I/O子系统的一般体系结构
  • “通用块层”、“I/O调度程序”和“块设备驱动程序”
    • 描述块设备I/O子系统
    • 主要组件
  • “打开块设备文件”
    • 打开一个块设备文件时内核步骤

块设备的处理

  • 块设备驱动程序上每个操作都涉及很多内核组件;
  • 最重要的一些如图14-1
14 块设备驱动程序_第1张图片

  • 一个进程在某个磁盘文件上发出一个read()系统调用
  • 处理 write请求本质上采用同样的方式。
  • 下面是内核对进程请求给予回应的一般步骤:

  • 1.read()系统调用的服务例程
  • 调一个适当的VFS函数,将文件描述符和文件内的偏移量传给它。
  • VFS位于块设备处理体系结构上层,
  • 它提供一个通用文件模型,
    • Linux支持的所有文件系统均用该模型
  • 十二章详细介绍VFS层

你可能感兴趣的:(14 块设备驱动程序)