Linux 0.11内核块设备驱动源码如何深入分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1517个文字,预计阅读时间需要7分钟。
内核代码系统利用缓冲区接口和块设备交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。块设备驱动程序负责驱动块设备,块设备驱动程序负责实现块设备的读写功能。
内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。 块设备驱动程序块设备驱动程序负责实现对块设备数据的读写功能。内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。
块设备的管理 块设备表内核通过一张块设备表blk_dev[]管理各种块设备,每个表项对应一个块设备,并为每一个块设备维护一个请求队列。
- current_request:指向设备请求队列第一个节点,请求队列通过链表实现。
- request_fn:函数指针,用于处理请求队列里面的读写请求。
内核为每个块设备维护一个请求队列,请求队列中请求等待被处理,current_request指向设备请求队列。
- 请求项
用于描述请求操作,包含读写磁盘扇区位置信息、缓冲区地址信息、操作类别(读/写)信息等。
请求项数据结构:
- 请求项数组
一块连续内存,被分割为请求项大小的块,形成数组,充当内存池的角色。请求队列中的请求项的内存从请求项数组中进行分配,请求操作完成后,请求项会被释放回该内存池中。
- 请求队列
处理读写设备请求时,从请求项数组中获取一个空闲块,建立请求项,并插入设备请求队列中。
本文共计1517个文字,预计阅读时间需要7分钟。
内核代码系统利用缓冲区接口和块设备交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。块设备驱动程序负责驱动块设备,块设备驱动程序负责实现块设备的读写功能。
内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。 块设备驱动程序块设备驱动程序负责实现对块设备数据的读写功能。内核代码统一使用缓冲块间接和块设备(如磁盘)交换数据,缓冲区数据通过块设备驱动程序和块设备交换数据。
块设备的管理 块设备表内核通过一张块设备表blk_dev[]管理各种块设备,每个表项对应一个块设备,并为每一个块设备维护一个请求队列。
- current_request:指向设备请求队列第一个节点,请求队列通过链表实现。
- request_fn:函数指针,用于处理请求队列里面的读写请求。
内核为每个块设备维护一个请求队列,请求队列中请求等待被处理,current_request指向设备请求队列。
- 请求项
用于描述请求操作,包含读写磁盘扇区位置信息、缓冲区地址信息、操作类别(读/写)信息等。
请求项数据结构:
- 请求项数组
一块连续内存,被分割为请求项大小的块,形成数组,充当内存池的角色。请求队列中的请求项的内存从请求项数组中进行分配,请求操作完成后,请求项会被释放回该内存池中。
- 请求队列
处理读写设备请求时,从请求项数组中获取一个空闲块,建立请求项,并插入设备请求队列中。

