块设备驱动程序子目录 kernel/blk_drv

1.通常情况下,用户是通过文件系统来访问设备的,因此设备驱动程序为文件系统实现了调用接口。
2.在使用块设备时,由于其数据吞吐量大,为了能够高效率地使用块设备上的数据,在用户进程与块设备之间使用了高速缓冲机制。
3.在访问块设备上的数据时,系统首先以数据块的形式把块设备上的数据读入到高速缓冲区中,然后再提供给用户。
4.blk_drv 子目录共包含 4 个 c 文件和 1 个头文件。头文件 blk.h 由于是块设备程序专用的,所以与 C 文件放在一起。这几个文件之间的大致关系,见图 2-18 所示。


5.blk.h 中定义了 3 个 C 程序中共用的块设备结构和数据块请求结构
6.hd.c 程序主要实现对硬盘数据块进行读 / 写的底层驱动函数,主要是 do_hd__request() 函数
7.floppy.c 程序中主要实现了对软盘数据块的读/ 写驱动函数,主要 是 do_fd_request() 函数
8.ll_rw_blk.c 中程序实现了低层块设备数据读 / 写函 数ll_rw_block() ,内核中所有其它程序都是通过该函数对块设备进行数据读写操作。该函数在许多访问块设备数据的地方被调用,尤其是在高速缓冲区处理文件 fs/buffer.c 中。