块设备概念:
字符设备是指访问的最小单位为一个字节,块设备是指能以块为单位进行访问的设备,块大小一般是512字节的整数倍(不同系统大小不同)。常见的块设备包括硬件,SD卡,光盘等。块设备访问一个字节方法:首先以一个块为大小读取硬件数据出来,然后再做相应的处理。
块设备驱动系统架构:
VFS系统架构:
VFS是对各种具体文件系统的一种封装,为用户程序访问文件提供统一的接口。(当访问不同设备时不会出现因为设备不同需要不同访问函数read、write等)
磁盘缓存(Caches):把经常需要访问的数据放在里面,提高访问的效率。
映射层(FS文件系统层):1.计算被访问文件需要访问多少个block。2.查处被访问的block在哪里
通用块层:把(访问需求)上层传来的需求做成BIO结构(BIO是对扇区支持的一种通用的结构)
I/O调度层:负责采用某种算法(如:电梯调度算法)将I/O操作进行排序,提高设备访问的效率。
块设备驱动:访问硬件,取出硬件数据,以原路线传回数据。