01-Linux块设备驱动
第1 3章 Linux块设备驱动
块设备是与字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。本章将详细讲解Linux块设备驱动的编程方法。
13.1节讲解块设备I/O操作的特点,分析字符设备与块设备在I/O操作上的差异。
13.2节从整体上描述Linux块设备驱动的结构,分析主要的数据结构、函数及其关系。
13.3~13.5节分别讲解块设备驱动模块加载与卸载、打开与释放和ioctl()函数。
13.6节非常重要,讲述了块设备I/O操作所依赖的请求队列的概念及用法。
13.2节与13.3~13.6节是整体与部分的关系,13.2~13.6节与13.7节是迭代递进的关系。
13.7节在13.1~13.6节讲解内容的基础上,总结Linux下块设备的读写流程,实现了块设备驱动的一个具体实例,即vmem_disk的驱动。